本文主要是介绍C语言编程题目:计算并输出一个三位整数(拓展n位整数的各位数及和)的个位、十位和百位及其和。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
先来看三位整数,举个例子,如123,求其百位为123除以100的商,十位为123除以100的余数(即23)再除以10的商,个位为123除以100的余数(即23)再除以10的余数。
那么,上代码!!!
#include <stdio.h>
#include <stdlib.h>int main()
{int num; //num是从键盘输入的三位数int hun,ten,one; //hun,ten,one分别表示该三位数的百位,十位,个位int sum; //sum表示百位、十位、个位数字之和printf("请输入这个三位整数:");scanf("%d",&num);hun = num/100;ten = (num%100)/10;one = (num%100)%10;sum = hun + ten + one;printf("这个三位数的百位是%d,十位是%d,个位是%d\n",hun,ten,one);printf("这个三位数百位、十位、个位数字之和为%d\n",sum);
}
运行结果举例如下:
依次类推,四位整数五位整数都应该可以写出来了,那么扩展到n位整数,这个时候显然不可能一位位列出来算,所以要用到循环了,那么直接上代码!!!
#include <stdio.h>
#include <stdlib.h>int main()
{int n; //n是所输入的数字位数int num; //num是从键盘输入的n位整数int sum = 0; //sum表示各位数之和int mul;printf("请输入该正整数位数及其大小(中间用空格分开):");scanf("%d %d",&n,&num);printf("该%d位正整数各位数从高位到低位依次为:",n);int temp_q, temp_r;for(int i=n-1; i>0; i--){mul = 1;for(int j=0; j<i; j++){mul = mul*10;}temp_q = num/mul;temp_r = num%mul;num = temp_r;printf("%d ",temp_q);sum += temp_q;if(mul == 10) {printf("%d\n",temp_r);sum += temp_r;}}printf("这个%d位数各位数和为%d\n",n,sum);
}
运行结果举例如下:
噢,再加一句,我的编译环境是codeblocks。
OK,那么到这里这个问题就解决了,还有什么问题或者更好的方法欢迎交流哦!
这篇关于C语言编程题目:计算并输出一个三位整数(拓展n位整数的各位数及和)的个位、十位和百位及其和。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!