繁体   English   中英

c中输入数字的总和

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM