当前位置: 代码迷 >> C语言 >> 这题写起来很容易,但公式很。。。。
  详细解决方案

这题写起来很容易,但公式很。。。。

热度:126   发布时间:2007-09-19 14:09:41.0
这题写起来很容易,但公式很。。。。
接收一个4位整数。编写一个程序,该数的每一位数相加并显示结果。。。。。。。。。。


搜索更多相关的解决方案: 公式  题写  

----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main(void)
{
int x,a,b,c,d;
system("graftabl 936");
system("cls");
printf("输入一个四位数:");
scanf("%d",&x);
a=x%1000;//得到千位数
b=x%100/10;//得到百位数
c=...;//得到十位数
d=...;//得到个位数
printf("结果:%d",a+b+c+d);
getch();
return 0;
}

网吧上网,没调试。
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<math.h>
#include<conio.h>
main()
{
int a,b,c,d,e;
printf("请输入一个4位整数:\n");
scanf("%d",&a);
b=a/1000;
c=(a-1000*b)/100;
d=(a-1000*b-100*c)/10;
e=a-1000*b-100*c-10*d;
printf("Now the num is:%d.\n",b+c+d+e);
getch();
}


我是新手 不知道是否可以 运行结果正确 没有加入输入数字 是非4位的情况

----------------解决方案--------------------------------------------------------

2楼可以分步解释吗?system("graftabl 936");
system("cls");


----------------解决方案--------------------------------------------------------
太谢谢你们了


----------------解决方案--------------------------------------------------------

也可以用字符串实现
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>

int main()
{
char str[20];
int result=0,i=0;
memset(str,0,sizeof(str));
printf("Enter a number:");
scanf("%s",&str);
for(i=0;i<(int)strlen(str);i++)
{
result+=str[i]-'0';
}
printf("The result is:%d",result);
getch();
return 0;
}


----------------解决方案--------------------------------------------------------

也可以直接实现
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int main()
{
int result=0,n;
printf("Enter a number:");
scanf("%d",&n);
while(n)
{
result+=n%10;
n=n/10;
}
printf("The result is:%d",result);
getch();
return 0;
}


----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<conio.h>
int main(void)
{
int num;
clrscr();
printf("请输入一个四位整数:");
scanf("%d",&num);
printf("%d+%d+%d+%d=%d",num%10,(num%100)/10,(num%1000)/100,num/1000,
num%10+(num%100)/10+(num%1000)/100+num/1000);
getch();
}
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main()
{
/*变量声明*/
int a,b,c,d,e,abcd
/*输入一个4位整数*/
printf("请输入一个4位数字:");
scanf("%d",&abcd);
/*求千位*/
a=abcd/1000;
/*求百位*/
b=(abcd-a)/100;
/*求十位*/
c=(abcd-a-b)/10;
/*求个位*/
d=(abcd-a-b-c)/1;
/*求千位,百位,十位,个位的和*/
printf("%d=%d+%d+%d+&d,e=a+b+c+d");
}
----------------解决方案--------------------------------------------------------

````哈哈```我有简单方法`````

#include<stdio.h>

int main()
{
char c ;
int n=0 ;

while( (c=getchar()) != EOF )
if(c!='\n')n += c-48 ;
else {printf("%d\n",n);n=0;}

return 0 ;
}

发现笔误```对不起```改了下```

[此贴子已经被作者于2007-9-20 11:33:48编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案