❶ 为什么C语言程序输入不了内容,有什么错误
二维字符串数组a[n][m],其中a[n]的是行指针,表示的一行数据。
所以在你图中代码char c[5][20];c[i]就表示一行字符串的首地址。
同理s数组也是。
所以当输入c和s数组,用c[i],s[i]做参数,不要加&,直接写scanf("%s%s",c[i],s[i])就可以了。
而a是不是字符数组,%f不能直接对应一行,而要对应其中一个元素,所以要写&a[i][j]。
而你的循环条件也不对,你那样写,字符数组,浮点数组循环输入次数是不一样的,要分开循环。
另外scanf输入默认是空格分隔,所以字符串和字符串之间要有空格,每个数字之间也要空格。像这样输入:
#include <stdio.h>
int main()
{
int i,j;
char c[5][20];
char s[5][20];
float a[11][6];
printf("please input: ");
for(i=0;i<5;i++)
scanf("%s%s",c[i],s[i]);
for(i=0;i<11;i++)
for(j=0;j<6;j++)
scanf("%f",&a[i][j]);
printf(" 输出打印: ");
printf("c数组内容: ");
for(i=0;i<5;i++)
printf("%s ",c[i]);
printf("s数组内容: ");
for(i=0;i<5;i++)
printf("%s ",s[i]);
printf("a数组内容: ");
for(i=0;i<11;i++,printf(" "))
for(j=0;j<6;j++)
printf("%f",a[i][j]);
return 0;
}
❷ 为什么C语言没有输入输出语句呢
因为C语言是跨平台的,在不同的系统(比如WINDOWS和LINUX)上输入、输出的处理是不同的,所以C语言不提供输入/输出,只是调用具体平台操作系统的库函数来实现输入、输出。