C语言通过键盘给二维数组赋值是不是只能一个个地进行?

如题所述

与二维数组的类型有关。

在C语言中,大多数二维数组都只能一个个进行赋值,但是对于字符型二维数组,即char [][]数组,每行都是一个一维字符数组,在C语言中是可以用作字符串的。当其用作字符串时,可以逐行输入。

如

char a[10][100];
int i;
for(i = 0; i < 10; i ++)
    scanf("%s", a[i]);

当二维字符数组不做字符串使用时,或二维数组为其他类型时,就只能一个个元素进行赋值了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-13
不是啊,可以在程序中写一个循环,如:
#include <stdio.h>
void main()
{
int a[3][3];
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
}
}
getch();
}
这样在控制台连续输入就可以了,用空格或回车分隔输入的值就行了本回答被提问者和网友采纳
第2个回答  2013-05-16

可以一下子输进去,用空格做分隔符,只要数量匹配就行。

因为程序是从输入缓冲区读入数据的,你一下子输进去一堆,他每次都是从里边取,没有了才管键盘要。


第3个回答  2013-05-16
恩 一个一个赋
第4个回答  2013-05-16
你的意思是输入一个数值后必须要按enter?你也可以自己设置间隔符判断啊,比如逗号空格什么的追问

除了用一个循环的嵌套以外有没有一次回车就可以全部赋值的方法?

追答

那你得告诉程序怎么分隔啊,比如你输入123456789然后enter,系统不知道你想怎么分割,如果是单个字符的话就直接getchar之类的,循环还是要的吧。。

相似回答