[英]Summation of inputted numbers in c
我正在使用这行代码,我的问题是每次输入一个数字时,总和的值都没有更新。 任何帮助将不胜感激。
#include <stdio.h>
int condition(int a)
{
int i=0, sum=0;
if (a%2 == 0)
{
printf("Please input ODD numbers only");
}
if (a%2 != 0)
{
sum=sum+a;
printf("\nTotal of ODD number is %d",sum);
}
}
int main()
{
int i, j, n;
printf("Total number: ");
scanf("%d",&j);
i=0;
while(i<j)
{
printf("\nNumber %d: ", i+1);
scanf("%d",&n);
condition(n);
i++;
}
return 0;
}
预期输出:
Total number: 3
Number 1: 3
Total of ODD number is 3
Number 2: 5
Total of ODD number is 8
Number 3: 7
Total of ODD number is 15
在循环的每一轮中,总和被初始化为 0。 做这个:
#include <stdio.h>
int condition(int a, int sum)
{
int i=0;
if (a%2 == 0)
{
printf("Please input ODD numbers only");
}
if (a%2 != 0)
{
sum=sum+a;
printf("\nTotal of ODD number is %d",sum);
return sum;
}
return 0;
}
int main()
{
int i, j, n, sum=0;
printf("Total number: ");
scanf("%d",&j);
i=0;
while(i<j)
{
printf("\nNumber %d: ", i+1);
scanf("%d",&n);
sum = condition(n, sum);
i++;
}
return 0;
}
如果您的函数不为空,请记住返回一个值。
看起来好像您想让 sum 全局化(即每次调用“条件”时都不要设置为零)
// make the sum global
int sum = 0;
int condition(int a)
{
if(a%2==0)
{
printf("Please input ODD numbers only");
}
if(a%2!=0)
{
sum=sum+a;
printf("\nTotal of ODD number is %d",sum);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.