qq_32575047
弗兰随风小欢
2016-02-21 09:02
采纳率: 83.3%
浏览 3.1k
已采纳

这个代码为什么输出不对呢求大神指教

#include
#include
/** 本题要求计算给定的一系列正整数中奇数的和。

输入格式:

输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。

输出格式:

在一行中输出正整数序列中奇数的和。

输入样例:
8 7 4 3 70 5 6 101 -1

输出样例:
116
int main()
{
int a[80];
int i,c = 0;
int sum=0;
for(i=0; ; i++)
{
scanf("%d ",&a[i]);
c++;
if(a[i]==0||a[i]<0)
{
break;

    }

}
for(i=0; i<=c; i++)
{
    if(a[i]%2!=0)
    {
        sum += a[i];
    }

}
printf("%d",sum);
return 0;

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • caozhy
    已采纳
     int main()
    {
        int a[80];
        int i = 0,c = 0;
        int sum=0;
        do
        {
            scanf("%d",&a[i]);
            c++;
        } while (a[i++]>0);
        for(i=0; i<c-1; i++)
        {
            if(a[i]%2!=0)
            {
                sum += a[i];
            }
        }
        printf("%d",sum);
        return 0;
    }
    
    点赞 评论
  • caozhy

    8 7 4 3 70 5 6 101 -1
    116Press any key to continue

    点赞 评论
  • baidu_31886191
    baidu_31886191 2016-02-21 10:52

    #include "stdafx.h"
    #include
    #include
    #include
    #include"iostream"
    using namespace std;

    int _tmain(int argc, _TCHAR* argv[])
    {
    int a[80];
    int i, c = 0;
    int number;
    int sum = 0;
    for (i = 0;; i++)
    {
    cin >> number;
    a[i] = number;
    c++;
    if (a[i] == 0 || a[i]<0)
    {
    break;
    }

    }
    for (i = 0; i <c-1; i++)
    {
        if (a[i] % 2 != 0)
        {
            sum += a[i];
        }
    
    }
    printf("%d", sum);
    return 0;
    

    }

    点赞 评论
  • Firas
    平菓菓 2016-02-21 11:33

    错误输出是什么呢?

    错误原因应该是

    for(i=0; i<=c; i++)
    

    一行,中间的条件应是

    i<c
    

    你看看只有一个数的情况就知道了

    还有,为什么假定输入最多只有80个数,题目有说最多80个数吗?
    下面的代码应该更好

    #include <stdio.h>
    int main() {
        int sum = 0, input = 0;
            while (1) {
                scanf("%d", &input);
                    if (input <= 0) break;
                    if (input & 1) sum += input;
            }
            printf("\d", sum);
    }
    
    点赞 评论
  • mengyin521
    M醉清风Y 2016-02-21 14:51

    虽然写的不好 但结果 应该不会有问题

    点赞 评论

相关推荐