c语言数组一次性输入

for( i=0; i<ROW; i++ ) /*COL=4,ROW=3*/
{
for( j=0; j<COL; j++ )
{
scanf("%d",&matrixA[i][j]); /* 输入矩阵A的值 */
}
}
上面这个例子执行时,可以一次性输入矩阵(3行4列);这是怎么回事?我理解为:先输入matrixA[1][1]按回车;接着再输入下一个数据按回车,接着···不是这样么?不过,该程序执行时,却可以一次性输入矩阵;这是怎么回事?

空格、TAB键,回车键,这三者都可以作为数据的分隔符号,如果是char型的,空格就是字符了。
当你开始输入数字的时候,如果scanf()扫描到空格,就默认为A[0][0]的赋值结束,再扫描到的数字赋值给下一个,,,依次类推。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-20
二重循环,先假设i=0,进入下一个循环,当下层循环结束后,重新进入第一层循环既i=1……后面的就是一样的了追问

你没有理解我的问题;我是说为什么可以一次性输入 ;如:1 2 3 4
24 2 3 4
3 4 4 4这个矩阵!

第2个回答  2013-03-20
你得想法是对的,只不过由于循环的连续性,你无法判断中间的间隔而已。追问

我还是不懂,能讲得更清楚点么?

追答

我还以为是回车后输入呢,直接空格的输入,应该跟接受的类型有点关系,如果是char可能就不行了。

第3个回答  2013-03-20
因为你的输入scanf在循环体内。
相似回答