C语言二级刷题---填空题01

函数fun的功能是:统计长整数n的各个位上出现数字1、2、3的次数,并通过外部(全局)变量c1、c2、c3返回主函数。例如,当n=123114350时,结果应该为:c1=3c2=1 c3=2请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

思路:

n = 123114350 ,每通过while循环一次,都会被最后的" n /= 10 "代码减少最右边的一位数字(个位),所以将switch表达式填写为" n % 10 ",每次循环都会提取最右侧数字(个位);

提取后的数字通过常量1.2.3来执行其后面的语句,若不在1.2的语句后使用" break "来跳出循环,则每次遇到大于1或2的数字时,都会对" c1 "或" c2 "进行" ++ "操作。

cpp 复制代码
#include   <stdio.h>
#pragma warning (disable:4996)
int  c1,c2,c3;
void fun(long  n)
{  c1 = c2 = c3 = 0;
   while (n) {
/**********found**********/
      switch(___1___)
      {
/**********found**********/
       case 1:    c1++;___2___;
/**********found**********/
       case 2:    c2++;___3___;
       case 3:    c3++;
      }
      n /= 10;
   }
}
main()
{  long  n=123114350L;
   fun(n);
   printf("\nThe result :\n");
   printf("n=%ld  c1=%d  c2=%d  c3=%d\n",n,c1,c2,c3);
}
填空后:
cpp 复制代码
#include   <stdio.h>
#pragma warning (disable:4996)
int  c1,c2,c3;
void fun(long  n)
{  c1 = c2 = c3 = 0;
   while (n) {
/**********found**********/
      switch(n%10)
      {
/**********found**********/
       case 1:    c1++;break;
/**********found**********/
       case 2:    c2++;break;
       case 3:    c3++;
      }
      n /= 10;
   }
}
main()
{  long  n=123114350L;
   fun(n);
   printf("\nThe result :\n");
   printf("n=%ld  c1=%d  c2=%d  c3=%d\n",n,c1,c2,c3);
}
相关推荐
脱脱克克11 分钟前
大厂机考——各算法与数据结构详解
数据结构·算法
xinxiangwangzhi_21 分钟前
多视图几何--立体校正--Fusiello方法
图像处理·数码相机·算法·计算机视觉
梁下轻语的秋缘24 分钟前
每日c/c++题 备战蓝桥杯(求解三个数的最大公约数与最小公倍数)
c语言·c++·学习·算法·蓝桥杯
Chandler2427 分钟前
LeetCode 热题 100 堆
算法·leetcode
Listennnn30 分钟前
EM算法到底是什么东东
人工智能·算法·机器学习
Y1nhl40 分钟前
Pyspark学习二:快速入门基本数据结构
大数据·数据结构·python·学习·算法·hdfs·pyspark
独好紫罗兰1 小时前
洛谷题单3-P1423 小玉在游泳-python-流程图重构
开发语言·python·算法
曦月逸霜1 小时前
第十四届蓝桥杯省赛真题解析(含C++详细源码)
c++·算法·蓝桥杯
KNeeg_2 小时前
⭐十大排序算法
java·算法·排序算法
KangkangLoveNLP2 小时前
手动实现一个迷你Llama:手动实现Llama模型
网络·人工智能·python·算法·机器学习·自然语言处理·llama