从键盘输入一个四位的正整数X,c语言编程计算X的每一个数字相加之和,怎么写以及思路

如题所述

#include "stdio.h"//包含头文件
main()
{
int x,a,b,c,d;//声明四个变量用于存储四位数及其各位的数
printf("请输入一个四位整数\n");//输出提示语句
scanf("%d",&x);//从屏幕上获取这个四位数
a=x%10;//获取个位
b=(x%100)/10;//获取十位
c=(x%1000)/100;//获取百位
d=x/1000;//获取千位
printf("%d各位相加结果为%d\n",x,a+b+c+d);//输出这个四位数及其各位的和
}
vc上运行通过。希望你能满意
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-06
思路很简单,取得各位数字,然后加起来嘛!各位数字取出来的方法就是除10取余,辗转相除保存起来就出来了。比如x=1234,定义int a,b,c,d;
a = x%10;
x=(int)x/10;
b = x%10;
x=(int)x/10;
c = x%10;
x=(int)x/10;
d = x%10;
x=(int)x/10;
最后加起来就行了啊,当然这仅限于四位,如果想写好那就用数组保存。思路就是这样的
第2个回答  2012-05-06
比如这个四位数是X=abcd。那么现在就是求s=a+b+c+d。
d是个位数,就是X对10求余,即d=X%10;
c是十位数,就是c=X%100-d;
b是百位数,就是b=X%1000-X%100;
a是千位数,就是X对1000取整,即a=X/1000;
希望对你有帮助。没懂继续问。
第3个回答  2012-05-06
x与10 做 % 运算,得到x的最低位数,
然后 x = x / 10 , 就会略去最低位,
循环这个过程就会得到各个位的数,
小伙子,写写看
第4个回答  2012-05-06
#include<stdio.h>
void main()
{
int n,temp;
int sum=0;
printf("Please input a number:");
scanf("%d",&n);
while(n!=0)
{
temp=n%10;
n=n/10;
sum=sum+temp;
}
printf("%d\n",sum);
}

...程序从键盘任意输入一个4位数X,编程计算X的每一位数字相加之和(忽略...
printf("%s的每一位数字相加之和为%d\\n",s,sum);}

输入一个正整数求不同数字之和的c语言
int num, sum = 0, remainder;\/\/ 输入一个正整数 printf("请输入一个正整数: ");scanf("%d", &num);\/\/ 遍历整数中的每一位并相加 while (num > 0) { remainder = num % 10; \/\/ 获取最低位的数字 sum += remainder; \/\/ 加到求和变量上 num = num \/ 10; \/\/ 去掉最...

...10分)从键盘任意输入一个4位数x,编程计算x的每一
int main(void){ cout<<"Enter a integer number(1000~9999):"<<endl; int val; cin>>val; int sum=0; sum=val\/1000+(val%1000)\/100+(val%100)\/10+(val%10); cout<<val<<"每位数之和为:"<<sum<<endl; return 0;}

怎么用c语言输出一个数的各个数字之和?
要输出一个数的各个数字之和,可以先将这个数分解为各个数字,然后将这些数字相加。在C语言中,可以使用循环和取模运算符(%)来实现这个过程。以下是一个示例代码,演示如何输出一个数的各个数字之和:在这个示例代码中,我们首先定义了一个整数变量num和一个变量sum,用于记录各个数字之和。然后,我们...

C语言:从键盘上输入一个整数,计算整数的各位数字之和
include <stdio.h> int GetNumber(int n)\/\/用递归来实现很简单 { int sum=0;if(n\/10 != 0){ sum+=GetNumber(n\/10);} sum+= n%10;return sum;} int main(){ int n = 87943;int a=GetNumber(n);printf("%d\\n",a);return 0;} ...

编写C语言程序,从键盘上输入一个正整数,计算并输出该数各位数字之和...
include<stdio.h> include<math.h> main(){ int n,m,sum;printf("please input:");scanf("%d",&m);for(sum=0;m;m=m\/10){ n=m%10;sum=sum+n;} printf("sum is %d",sum);} 大概想了下思路,你看看吧,不知道对错

利用C语言怎样求整数的位数以及各位数之和
int main(int argc, char **argv){ int a;int sum = 0; \/\/这是各位数的和 int NumWidth =0;\/\/这是位数和 scanf("%d",&a);while(a != 0){ sum += a%10 ; \/\/求余可以得到这个数个位上的数字,然后把它加到sum中 a \/= 10; \/\/把这个数字除以10,然后再求余,可以得到10位...

C语言如何求一个整数的各个位数之和
可以参考下面的代码:include "stdio.h"int main(){ int number,i=0,sum=0;printf("please input a number:");scanf("%d",&number);while(number!=0){ sum+=number%10;number\/=10;i++;} printf("sum=%d\\n",sum);printf("位数=%d\\n",i);return 0;} ...

C语言编程从键盘上输入任意一个无符号数(正整数),将该数各位数字相加后...
include <stdio.h> include <stdlib.h> int sum(int a){ if(!a)return 0;int cout = a%10;return cout + sum(a\/10);} int main(int argc, char *argv[]){ if(argc != 2){ printf("error input\\n");exit(-1);} printf("%d\\n", sum(atoi(argv[1])));return 0;} ...

C语言求输入一段字符串 将其中连续的数字相加
int cf(int x,int y){ int i; for(i=1;i<y;i++) x*=10; return x;}int main(){ char a[100]; int i,j,k,len,goal=0,result[100],wei[100]={0}; scanf("%s",a); len=strlen(a); for(i=0,j=0,k=0;i<len;i++) if(a[i]>='0'&&a[i]<='9'){result[j++]=a[i]...

相似回答