鱼C论坛

 找回密码
 立即注册
查看: 4496|回复: 9

c语言简单代码

[复制链接]
发表于 2012-10-26 22:37:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include<stdio.h>
  2. void main()
  3. {
  4. int n;
  5. int a=0;
  6. int b=0;
  7. float sum1=0;
  8. float sum2=0;


  9. while(1)
  10. {
  11. scanf("%d",&n);
  12. if(n==0)
  13. break;
  14. if(n%2==0)
  15. {sum1=sum1+n;
  16. a++;}
  17. else
  18. {        sum2=sum2+n;
  19.         b++;
  20. }

  21. }

  22. printf("偶数个数%d,平均数%d\n奇数个数%d,平均数%d\n",a,sum1/a,b,sum2/b);
  23. }
复制代码

输入整数,到0停止,然后打印偶数的平均值和奇数的平均值。
求各位大神帮我看看我的代码哪里出错了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-27 00:02:37 | 显示全部楼层
学习一下  整篇的输入代码
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-10-27 09:02:55 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-27 16:05:06 | 显示全部楼层

  1. # include <stdio.h>
  2. int main(void)
  3. {
  4. int n;
  5. int a = 0;
  6. int b = 0;
  7. int sum1 = 0;   //此处修改为 int
  8. int sum2 = 0;   //此处修改为 int

  9. while (1)
  10. {
  11.   scanf("%d", &n);
  12.   if (n == 0)
  13.    break;
  14.   if (n%2 == 0)
  15.   {
  16.    sum1 = sum1+n;
  17.    a++;
  18.   }
  19.   else
  20.   {
  21.    sum2 = sum2+n;
  22.    b++;
  23.   }
  24. }

  25. printf("偶数个数%d,平均数%d\n奇数个数%d,平均数%d\n", a, sum1/a, b, sum2/b);

  26. return 0;
  27. }
  28. /*
  29. -------------
  30. 本人也是初学,不对之处,虚心求教
  31. 建议看看不同类型之间的强制转换
  32. -------------
  33. */
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-27 21:58:35 | 显示全部楼层
两个平均数%d   改成%f就行
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-27 23:15:44 | 显示全部楼层
Ben 发表于 2012-10-27 09:02
????sorry没明白你的意思

俺来学习你的C程序
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-9 22:29:04 | 显示全部楼层
楼主。很明显你这是一个死循环。while(1)永远成立的
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-15 15:01:44 | 显示全部楼层
printf("偶数个数%d,平均数%d\n奇数个数%d,平均数%d\n",a,sum1/a,b,sum2/b);
因为sum1,sum2定义为float,所以要用%f输出...
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-15 15:04:48 | 显示全部楼层
还需要考虑下  a,b的值为0时,无法用除法求平均值...:loveliness:
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-15 18:04:13 | 显示全部楼层
  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int n;
  5.     int a=0;
  6.     int b=0;

  7.     int  sum1=0;
  8.         int sum2=0;

  9.           scanf("%d",&n);

  10.     while(1)
  11.     {
  12.         if(n==0)
  13.             break;

  14.         if(n%2==0)
  15.         {
  16.             sum1=sum1+n;
  17.             a++;
  18.             n--;
  19.         }
  20.         else
  21.         {
  22.             sum2=sum2+n;
  23.             b++;
  24.             n--;
  25.         }

  26.     }

  27.     printf("sum1 =  %d \n", sum1);
  28.     printf("sum2 =  %d \n", sum2);
  29.     printf("a =  %d \n", a);
  30.     printf("b =  %d \n", b);

  31.         printf("偶数平均值 = %f\n",(float)(sum1/a));
  32.         printf("奇数平均值 = %f\n",(float)(sum2/b));

  33.     return 0;
  34. }

  35. /*
  36.         (1). 你的循环是死循环, 没有跳出去的条件
  37.         (2). 把一个int型的数据和一个float型的数据相加, 会出现0
  38.         (3). 输出时可以将int型强制转化为float的
  39. */
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-10 12:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表