C语言中,通过scanf读取输入的数组元素后出错。
谢谢,我这个程序具体请见下,分别读取两个数组的元素。读取完第一个数组时结果正确,但读取完第二个数组后,第一个数组的值出现了错误。具体请见下:#include<stdio....
谢谢,我这个程序具体请见下,分别读取两个数组的元素。读取完第一个数组时结果正确,但读取完第二个数组后,第一个数组的值出现了错误。
具体请见下:
#include <stdio.h>
int main()
{
const int size = 2;
const int max_power = 2;
int multi_1[max_power][size];
int multi_2[max_power][size];
int i,j;
//数组赋值
for ( i=0; i<=max_power; i++) {
for ( j=0; j<size; j++ ) {
multi_1[i][j] = 0;
multi_2[i][j] = 0;
}
}
//分别读取两个多项式,写入两个数组
//第一个数组
for ( i=0; i<=2; i++ ) {
j = 0;
scanf("%d %d",&multi_1[i][j],&multi_1[i][j+1]);
if ( multi_1[i][j] == 0 ) {
break;
}
}
//第二个数组
for ( i=0; i<=2; i++ ) {
j = 0;
scanf("%d %d",&multi_2[i][j],&multi_2[i][j+1]);
if ( multi_2[i][j] == 0 ) {
break;
}
}
return 0;
}
当读取第一个数组时,我输入的矩阵如下,此时输出数组元素时没有问题。
2 2
1 2
0 2
但当程序读取第二个数组时,我输入的第二个矩阵同上面相同,执行完之后,上面的第一个矩阵输出变成了:
0 2
1 2
0 0
第一个元素和最后一个元素都变成了0,这是什么原因导致的?
谢谢! 展开
具体请见下:
#include <stdio.h>
int main()
{
const int size = 2;
const int max_power = 2;
int multi_1[max_power][size];
int multi_2[max_power][size];
int i,j;
//数组赋值
for ( i=0; i<=max_power; i++) {
for ( j=0; j<size; j++ ) {
multi_1[i][j] = 0;
multi_2[i][j] = 0;
}
}
//分别读取两个多项式,写入两个数组
//第一个数组
for ( i=0; i<=2; i++ ) {
j = 0;
scanf("%d %d",&multi_1[i][j],&multi_1[i][j+1]);
if ( multi_1[i][j] == 0 ) {
break;
}
}
//第二个数组
for ( i=0; i<=2; i++ ) {
j = 0;
scanf("%d %d",&multi_2[i][j],&multi_2[i][j+1]);
if ( multi_2[i][j] == 0 ) {
break;
}
}
return 0;
}
当读取第一个数组时,我输入的矩阵如下,此时输出数组元素时没有问题。
2 2
1 2
0 2
但当程序读取第二个数组时,我输入的第二个矩阵同上面相同,执行完之后,上面的第一个矩阵输出变成了:
0 2
1 2
0 0
第一个元素和最后一个元素都变成了0,这是什么原因导致的?
谢谢! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询