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

问题描述

这个代码为什么输出不对呢求大神指教
#include
#include
/** 本题要求计算给定的一系列正整数中奇数的和。

输入格式:

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

输出格式:

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

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

输出样例:
116
int main()
{
int a[80];
int ic = 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;

}

解决方案

 int main(){    int a[80];    int i = 0c = 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;}

解决方案二:
8 7 4 3 70 5 6 101 -1
116Press any key to continue

解决方案三:
错误输出是什么呢?

错误原因应该是

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);}

解决方案四:
虽然写的不好 但结果 应该不会有问题

解决方案五:
#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;

}

时间: 2024-09-16 22:20:52

求解决-这个代码为什么输出不对呢求大神指教的相关文章

cpu-dsp 28335 AD中断4次后程序停止,付代码。(dsp新手 望大神指教)

问题描述 dsp 28335 AD中断4次后程序停止,付代码.(dsp新手 望大神指教) #include "DSP28x_Project.h" // Device Headerfile and Examples Include File #include"SPI_com2.h" interrupt void adc_isr(void); // Global variables used in this example: Uint16 LoopCount; Uint

进制之间的转换-输入为“任意进制+数值”,想输出十进制下该数的数值,但怎么也输出不对,求解答!

问题描述 输入为"任意进制+数值",想输出十进制下该数的数值,但怎么也输出不对,求解答! int main() { int i=0,j,k,s=0,d=0,n=0; int q=1; int a,b; char str1[100]; char str2[100]; int num[100]; cin>>i; gets(str1); k=strlen(str1)-2; while(k>=0) { a=getnum(str1[k]); a=a*q; s=s+a; q=q*

请问这段代码为什么输出null,求大神解答程序执行的顺序?

问题描述 请问这段代码为什么输出null,求大神解答程序执行的顺序? public class xieCheng { private String baseName="Base"; public xieCheng(){ this.callName(); } public void callName(){ System.out.println(baseName); } } public class Sub extends xieCheng { private String baseNam

求下面java代码的输出。and WHY!!

问题描述 求下面java代码的输出.and WHY!! class T { public static void main(String[] args) { System.out.println("T的main方法"); } public void print() { System.out.println("T的print方法"); } } public class A extends T { public static void main(String[] arg

arm-基于lpc2114做sht11在lcd1602显示代码调试驱执行不了,求大神指教

问题描述 基于lpc2114做sht11在lcd1602显示代码调试驱执行不了,求大神指教 /**************************************************************************** 基于LPC2114做的一个SHT11温湿度传感器在LCD1602显示 ****************************************************************************/ #include "con

新人 求大神指教-怎么完善这个代码 求大神指教

问题描述 怎么完善这个代码 求大神指教 需要考虑平年和闰年 解决方案 1-12个月,每月有几天都是固定的,除了平和润年2月.写死其他,检测判断今年是否润年,就得了,没其他. 解决方案二: 可再加一个输入年份,然后再case 2的地方判断是否是闰年就行了 解决方案三: 直接对年份进行判断,然后根据情况输出就好

int-输入三个字符串,按由小到大的顺序输出。答案运行出来是正确的提交上去是错的。不想用指针,求大神指教

问题描述 输入三个字符串,按由小到大的顺序输出.答案运行出来是正确的提交上去是错的.不想用指针,求大神指教 代码:#include #include int main( ) { char s[3][100]; int i,j,a[3],m; for(i=0;i { gets(s[i]); a[i]=i; } for(j=1;j { for(i=0;i { if(strcmp(s[a[i]],s[a[i+1]])>0) { m=a[i]; a[i]=a[i+1]; a[i+1]=m; } } }

android fragment-fragmentactivity中了用了办法来解决每次点击后重复加载ui,但是没效,求大神指教

问题描述 fragmentactivity中了用了办法来解决每次点击后重复加载ui,但是没效,求大神指教 package com.doone.changeverday.ui.fragmrnt; import java.util.ArrayList;import java.util.List; import com.doone.changeverday.R;import com.doone.changeverday_bean.ShopBean;import com.doone.changevryd

Eclipse中代码要无法连接mysql数据库,求大神指教

问题描述 Eclipse中代码要无法连接mysql数据库,求大神指教 结果显示是这样:Exception in thread ""main"" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Meth