Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C溢出还是什么?_C_Overflow - Fatal编程技术网

C溢出还是什么?

C溢出还是什么?,c,overflow,C,Overflow,我正在读取两个数字数组及其长度,并试图找到每个数组的总和 一方面我得到了正确的答案,但另一方面,我不明白发生了什么?有人能帮我看看吗 int m, n, snum, i, smun; scanf("%d",&m); int num[m]; for (i=0;i<m;i++) { scanf("%d",&num[i]); snum+=num[i]; } scanf("%d",&n); int mun[n]; for (i=0;i<n;i++) {

我正在读取两个数字数组及其长度,并试图找到每个数组的总和

一方面我得到了正确的答案,但另一方面,我不明白发生了什么?有人能帮我看看吗

int m, n, snum, i, smun;
scanf("%d",&m);
int num[m];
for (i=0;i<m;i++) {
    scanf("%d",&num[i]);
    snum+=num[i];
}
scanf("%d",&n);
int mun[n];
for (i=0;i<n;i++) {
    scanf("%d",&mun[i]);
    smun+=mun[i];
}
printf("%d %d ",smun,snum);

几乎没有定义的行为,因为你这样做了

int m,n,snum,i,smun;
然后累积到未初始化的snum

snum+=num[i];
像这样做

int m = 0;
int n = 0;
int snum = 0;
int i = 0;
int smun= 0;

将提供正确的初始化和结果

您没有初始化snum和smun,它应该是
snum=0;smun=0然后操作总和。

您需要将总和变量初始化为某个值

int m,n,snum,i,smun; 
snum=0;
smun=0;
scanf("%d",&m); 
int num[m]; 
for (i=0;i<m;i++){ 
     scanf("%d",&num[i]); 
     snum+=num[i]; 
} 
scanf("%d",&n); 
int mun[n]; 
for (i=0;i<n;i++) {
scanf("%d",&mun[i]);
smun+=mun[i];
} 
printf("%d %d ",smun,snum);
int m,n,snum,i,smun;
snum=0;
smun=0;
scanf(“%d”、&m);
int num[m];

对于(i=0;IDoEST)它将所有未定义的东西设置为0,或者仅仅是java?但是SUMN是如何正确计算的?在C++或C++中NOP…没有默认值。所以这些变量是保存GabbA格的,但是SUMN是如何正确计算的?@ USS77037 70这是纯粹的运气。你有机会它确实做了你期望的事情。但是你不能依赖它。这可能会工作一千次,然后就不行了。或者总是在你的电脑上,而不是在你姐姐的电脑上。它是未定义的,而且很多时候你甚至看不到它是未定义的,因为运气好,或者有时候一个关心的编译器未定义的行为会像你期望的那样工作。
int m,n,snum,i,smun;
-你知道多少k此时处于snum状态?int-num[m]和int-num[n],这不是指定数组的长度吗?@user7703770是的,对不起,错过了那部分,我的错
int m,n,snum,i,smun; 
snum=0;
smun=0;
scanf("%d",&m); 
int num[m]; 
for (i=0;i<m;i++){ 
     scanf("%d",&num[i]); 
     snum+=num[i]; 
} 
scanf("%d",&n); 
int mun[n]; 
for (i=0;i<n;i++) {
scanf("%d",&mun[i]);
smun+=mun[i];
} 
printf("%d %d ",smun,snum);