检查并改正c语言程序:本题要求编写一个解密藏头诗的程序。 输入格式: 输入为一首中文藏头诗,一共四句,每句一行。注意:一个汉字占三个字节。 输出格式: 取出每句的第一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。 输入样例: 一叶轻舟向东流 帆稍轻握杨柳手 风纤碧波微起舞 顺水任从雅客流 输出样例: 一帆风顺.#include <stdio.h> int main() { char a[22],b[22],c[22],d[22]; for(int i=0;i<21;i++) scanf("%s",a[i]); for(int j=0;j<21;j++)scanf("%s",b[j]); for(int k=0;k<21;k++)scanf("%s",c[k]); for(int l=0;l<21;l++)scanf("%s",d[l]); printf("%c%c%c%c\n", a[0], b[0], c[0], d[0]); }
时间: 2024-03-07 18:46:47 浏览: 90
改正后的程序如下:
```
#include <stdio.h>
int main() {
char a[10], b[10], c[10], d[10];
scanf("%s", a);
scanf("%s", b);
scanf("%s", c);
scanf("%s", d);
printf("%c%c%c%c\n", a[0], b[0], c[0], d[0]);
return 0;
}
```
改正的问题:
1. 数组长度不够,应该至少为10,因为每句四个汉字,每个汉字占三个字节,加上字符串结尾符号'\0',共占用13个字节的空间。
2. 循环读入时,应该使用scanf("%s", a),而不是scanf("%c", &a),因为%s可以读入字符串,而%c只能读入单个字符。
3. 循环读入时,应该只读入一个字符串,而不是每次读入一个字符。
4. 循环读入时,应该使用不同的数组,而不是同一个数组,因为每次读入一个新的字符串。
阅读全文