zoukankan      html  css  js  c++  java
  • 第十周编程总结--助教

    题目1 求奇数和
    (1)实验代码
    #include<stdio.h>
    int main ()
    {
     int n, sum;
     
     scanf("%d", &n);
     sum = 0;
     
     while(n > 0)
     {
      if(n%2 != 0)
      sum = sum + n;
      
      scanf("%d", &n);
     }
     printf("%d", sum);
     
     return 0;
     }
    (2)设计思路
    第一步:定义变量,赋初值
    第二步:运用while语句,条件为n>0
    第三步:如果n%2不为0,将n的值加到sum中去
    第四步:输出sum的值
    (3)本题调试过程碰到问题及解决办法
    一次性通过,无问题
    (4)运行结果截图

    题目2 求整数的位数及各位数字之和
    (1)实验代码
    #include<stdio.h>
    int main ()
    {
     int n, sum, w;
     
     scanf("%d", &n);
     w = 1;
     
     if(n<10)
     {
     sum = n;
                    }
       
     while(n / 10 > 0)
     {
      w++;  
      sum += n % 10;
      n = n / 10;
      
     if(n < 10)
         {
          sum = sum + n;
                        }
     }
     printf("%d %d", w, sum);
     
     return 0;
    }
    (2)设计思路
    第一步:定义变量,输入数字n
    第二步:如果n<10,sum为n,若n/10>0,用while循环判断
    第三步:每循环一次位数加一sum += n % 10;n = n / 10;
    第四步:n<10时,sum加n,因为n<10时它不会加到sum中去
    第五步:输出结果
    (3)本题调试过程碰到问题及解决办法
    一开始没有思考到连续的0,改正了下计算的方式,改正后又忘记了最小的n,改正后正确。
    (4)运行结果截图

    题目3 韩信点兵
    (1)实验代码
    #include <stdio.h>
    int main()
    {
     int number = 0;
     while (number % 5 != 1 || number % 6 != 5 || number % 7 != 4 || number % 11 != 10)
     {
      number++;
     }
     
     printf("%d", number);
     return 0;
    }
    (2)设计思路
    第一步:定义变量赋初值
    第二步:用while语句循环计算
    第三步:判断条件为number % 5 != 1 || number % 6 != 5 || number % 7 != 4 || number % 11 != 10
    第四步:输出结果
    (3)本题调试过程碰到问题及解决办法
    一开始没看懂题目,看懂后就好做了
    (4)运行结果截图

    题目4 整除光棍
    方法1:
    (1)实验代码
    #include<stdio.h>
    int main()
    {
     int n,i,x=0,flag=0;
     scanf("%d",&n);
     for(i=1;;i++)
     {
      x=x*10+1;
      if(x>=n)
      {
       flag=1;
       printf("%d",x/n);
      }
      else if(flag==1)
      printf("0");
      
      x=x%n;
      if(x==0)
      break;
     }
     printf(" %d",i);
     
     return 0;
    }
    (2)设计思路
    第一步:定义变量,赋初值
    第二步:运用for循环,无判断条件
    第三步:每次x的位数增加1,且加一。
    第四步:如果x大于你输入的数,就输出x,令flag为1
    第五步:若flag为1,输出0(就是有些除出来得数字中间有0)
    第六步:x=x%n,留下除后的余数继续计算
    第七步:最后输出位数,也就是循环的次数
    (3)本题调试过程碰到问题及解决办法
    这题一开始我就得很难,无从下手,问了老师之后运用模拟除法,不过第一次的代码在陪她上超时,所以就修改,每除完一次输出一个数,答案正确
    (4)运行结果截图
    方法二:
    #include <stdio.h>
    int main()
    {
        int x = 0, s = 0, n = 0;    // 定义除数,被除数,位数
        scanf("%d", &x);
        while (s < x)
        {
            s = s * 10 + 1;         // 被除数末位添1, 直到不小于被除数
            ++n;                    // 位数增1
        }
        while (1)                   // 开始进行除法运算
        {
            printf("%d", s / x);    // 输出商, 从最高位一直输出到个位,因为最后一定能整除
            s %= x;                 // 被除数更新为余数
            if (s == 0) break;      // 余数为0则结束
            s = s * 10 + 1;         // 余数末位添1
            ++n;                    // 位数增1
        }
        printf(" %d ", n);
        return 0;
    }
    截图:
  • 相关阅读:
    迭代器基础知识
    C语言I博客作业09
    第一周作业
    C语言1博客作业04
    C语言I博客作业08
    C语言博客作业05
    C语言I作业12—学期总结
    C语言I博客作业10
    C语言I博客作业06
    C语言I博客作业11
  • 原文地址:https://www.cnblogs.com/zw431387/p/9968596.html
Copyright © 2011-2022 走看看