
[英]Problem with C program not exiting at integer count 150 by using a while loop
[英]C program for loop ended with a zero with unkown count
问题如下:
使用以写入 0 结尾的 for 循环,计算偶数和、奇数和,
我不知道为什么我的代码不起作用:
#include <stdio.h>
#include <stdlib.h>
int main() {
int i = 0, num[i], sum, even, odd;
for (;;) {
printf("Write a number: ");
scanf("%d", &num[i]);
if (num[i] == 0) {
break;
}
if (num[i] % 2 == 0) {
even += num[i];
} else
odd += num[i];
i++;
}
printf("Sum of even is: %d\n", even);
printf("Sum of odd is: %d", odd);
return 0;
}
零元素数组的声明
int i=0,num[i],sum,even,odd;
调用未定义的行为。
实际上,没有任何理由为此任务使用数组。
您还需要初始化偶数和奇数变量。 也不使用变量 sum 。
该程序可以通过以下方式查找示例
#include <stdio.h>
int main( void )
{
int even = 0, odd = 0;
while ( 1 )
{
printf( "Enter a number (0 - stop): " );
int num;
if ( scanf( "%d", &num ) != 1 || num == 0 ) break;
if (num % 2 == 0)
{
even += num;
}
else
{
odd += num;
}
}
printf( "Sum of even is: %d\n", even );
printf( "Sum of odd is: %d", odd );
}
如果您要使用数组,那么您需要声明一个具有固定数量元素的数组并限制输入数量。 或者您需要分配和重新分配一个动态分配的数组。 但这会使您的程序变得更加复杂,并带有冗余代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.