搜索
查看: 1123|回复: 4
打印 上一主题 下一主题

【第四章第4节】动手试一试 题解

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-29 23:40:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 可以从1-100循环一遍,判断数字是不是偶数,如果是偶数就累加
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. int main()
  5. {
  6.   int sum, i;
  7.   sum = 0;
  8.   i = 1;
  9.   while(i <= 100){
  10.     if(i % 2 == 0)
  11.       sum = sum + i;
  12.     i = i + 1;
  13.   }
  14.   printf("%d\n", sum);
  15.   system("pause");
  16.   return 0;
  17. }
复制代码


或者从2开始循环,每次+2
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main()
  4. {
  5.   int sum, i;
  6.   sum = 0;
  7.   i = 2;
  8.   while(i <= 100){
  9.     sum = sum + i;
  10.     i = i + 2;
  11.   }
  12.   printf("%d\n", sum);
  13.   system("pause");
  14.   return 0;
  15. }
复制代码

这样可以少做50次加法和100次余数运算

地道的C写法中会使用for,其他没什么区别
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main()
  4. {
  5.   int sum = 0, i;
  6.   for(i=2; i<=100; i+=2)
  7.     sum += i;
  8.   printf("%d\n", sum);
  9.   system("pause");
  10.   return 0;
  11. }
复制代码

沙发
 楼主| 发表于 2014-3-29 23:43:45 | 只看该作者
本帖最后由 rosynirvana 于 2014-3-29 23:45 编辑

2. 9以内的阶乘,只要把范围从1-100改成1-x,加法改成乘法就是了
注意乘法的初始值是1,不是0。

  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main()
  4. {
  5.   int fac, i, upper;
  6.   fac = 1;
  7.   i = 2;
  8.   scanf("%d", &upper);
  9.   while(i <= upper){
  10.     fac = fac * i;
  11.     i = i + 1;
  12.   }
  13.   printf("%d\n", fac);
  14.   system("pause");
  15.   return 0;
  16. }
复制代码


板凳
发表于 2014-4-12 00:25:33 | 只看该作者
本帖最后由 jy02214772 于 2014-4-12 00:27 编辑

#include <stdio.h>
#include <stdlib.h>
int main()
{int        a,n,i;
a=1;i=1;
scanf("%d",&n);
while(i<=n)        
        {a=a*i;
                i=i+1;}
        printf("%d",a);
        
        system("pause");
        return 0;
}

这样对吗
地板
发表于 2017-9-24 15:20:28 | 只看该作者
本帖最后由 yangyifei 于 2017-9-24 15:23 编辑

#include <stdio.h>#include <stdlib.h>
int main()
{         
      int a,i;
      a=0;         
      i=2;   
      while (i<=100)
      {      
           a=a+i;
           i=i+2;
       }   
       printf("%d",a);
       system("pause");
       return 0;
}
5#
发表于 2017-9-24 15:27:31 | 只看该作者
jy02214772 发表于 2014-4-12 00:25
**** 作者被禁止或删除 内容自动屏蔽 ****

貌似你这个没有按题目规定出1<=n<=9
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表