⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ʵ

📁 C语言题库包括习题、数组补充练习、C高级程序应用题库、C语言基本数据类型及运算题库、C语言控制语句题库、变量的存储类别题库、函数题库、输入
💻
字号:
1.输入一个整数,计算并显示该整数各位数字之和。
2.找出同时被2、3、5整除,并余1的最小10个数。

  第1题的关键是解决将一个整数分解成各位数字,然后累加起来。在该题中首先要考虑有什么输入?其次是如何处理输入的数据?最后考虑有什么输出?
  第一个问题:从题干上就可以看出来,需要输入一个整数,在程序中当然要定义一个变量来存放它,如用变量  n  存放,用scanf函数在运行时从键盘输入;另外要一个变量来存放各位数字的和,如定义为 sum 变量,应赋初值为 0 ;变量的类型可以定义为整型及其扩展的整型类型。
  第二个问题:有多种方法来处理。万变不离其宗,主要要用取余和整除的方法。
      法一:循环处理
          while(n!=0)
            {
              sum=sum+n%10;   /*将n的个位数累加到sum变量中*/
              n=n/10;         /*去掉n的个位数*/
            }
      法二:非循环处理(需要多定义5个变量,每个变量存放1位数,int型或 unsigned int型最多5位)
          a= n%10;             /*取出个位数字存入变量a*/
          b= n/10 % 10;          /*取出百位数字存入变量b*/
          c= n/100 % 10;
          d= n/1000 % 10;
          e= n/10000 % 10;
          sum=a+b+c+d+e;
      法二具有局限性,只能处理5位以内的整数,而法一就比较具有通用性。
  第三个问题:输出sum变量的值就行了。
    
  所以一个完整的程序如下(仅供参考):
   main()
   {
    int n,sum=0;
    printf("Please input n(integer):");    /*提示输入的语句,原样显示*/
    scanf("%d",&n);               /*完成输入的语句*/
    while(n!=0)
     {
       sum=sum+n%10;  
       n=n/10;         
     }
    printf("\n The sum is %d \n",sum); 
   }
第2题要判定一个数如n能够同时被2、3、5整除并余1可以用一个逻辑表达式来表式: n%2==1&&n%3==1&&n%5==1 , 而这个被除数的下限是从1开始,而上限不知道,但确定只要找到10个符合这样的条件的数就够了。所以用条件型循环比较适合。具体参考程序如下:
   main()
   {
     int n=1,count=0;  /*count 是计数器,用来计数找到符合条件数的个数*/ 
     while(count<10)
      {
        if(n%2==1&&n%3==1&&n%5==1)  
          {
            printf("%-8d",n);
            count++;
          }
        n++;
      }
     printf("\n");
   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -