| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3952 人关注过本帖
标题:任意输入一个4位数,求他的数字之和,(如:5173,数字之和是:16
只看楼主 加入收藏
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
#include"stdio.h"
#include"math.h"
int main(void)
{
int a,b,c,d,e,sum;
scanf("%d",&a);
if((a>=1000)&&(a<=9999))
{
b=a/1000;
c=a/100-b*10;
d=a/10-b*100-c*10;
e=a-b*1000-c*100-d*10;
sum=b+c+d+e;
printf("%d\n",sum);
}
else
printf("This is error!");
getch();
}

   好好活着,因为我们会死很久!!!
2007-04-24 12:52
QQ285822391
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-4-21
收藏
得分:0 
以下是引用ml342418175在2007-4-23 23:34:26的发言:
楼上的能解释一下吗?看不懂哦。
for( ; n!=0 ; )
{
a+=n%10;
n=n/10;
}
这段什么意思,谢谢了

只要N不等于0就会无限循环下去


信念+努力=希望
2007-04-24 13:08
QQ285822391
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-4-21
收藏
得分:0 
以下是引用计算机学院在2007-4-24 2:19:45的发言:

   多谢大家的帮忙 
能解释下
a=n/1000;
b=(n%1000)/100;
c=((n%1000)%100)/10;
d=n%10;
sum=a+b+c+d;
什么意思吗 有点看不明白


b=a%10; //求个位数
c=a/10%10; //求十位数
d=a/100%10; //百位数
e=a/1000; //千位数


信念+努力=希望
2007-04-24 13:11
jacy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-4-18
收藏
得分:0 
以下是引用ml342418175在2007-4-23 23:34:26的发言:
楼上的能解释一下吗?看不懂哦。
for( ; n!=0 ; )
{
a+=n%10;
n=n/10;
}
这段什么意思,谢谢了


求n的最后一位,加到a里面。然后n变成原来的十分之一。循环直到n=0的时候结束。
举个例子吧,如输入n=123,
开始进行循环, a+=n%10,结果a=0+3(a的初始值是0) 。n=n/10,结果n=12。
然后n=12进行循环.....这样,就能从后往前把每一位数加起来了
不知道能否看懂


2007-04-24 13:39
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 

#include "stdio.h"
#include "string.h"
int main(void){
char arr[6],*pt=arr;
int sum=0;
fgets(arr,5,stdin);
while(*pt&&48<=*pt&&*pt<=57){
sum+=*pt-48;
printf("%d+",*pt-48);
pt++;
}
printf("\b=%d\n",sum);
return 0;
}


由于工作,N久都没来了!
2007-04-24 13:57
ycxue46
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-4-16
收藏
得分:0 
main()
{
int i, sum=0,a[4];
printf("input for intergers:\n");
for( i=0;i<4;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
printf("out:%d",sum);
printf("\n");
getch();
}
题目看错了

[此贴子已经被作者于2007-4-24 14:53:08编辑过]

2007-04-24 14:49
sunnyrain
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-4-24
收藏
得分:0 
以下是引用shabi333在2007-4-23 8:46:12的发言:
#include "stdio.h"
#include "math.h"
int main()
{int sum,n;
printf("input an integer of four bit:");
scanf("%d ",&n);
for(sum=0;n>=1;n=n/10)
{sum=sum+n%10;
}
printf("The sum of n is :%d",sum);
getch();
}

看了这么多,就4楼的写的最简便而且不管多少位都适用,只要输入的是正整数就可以了~~~
我来注释一下
#include <stdio.h>
void main()
{
int num,sum = 0; //声明一个整形变量num用来存放要计算的正整数,sum用来存放和
printf("请输入一个正整数:");
scanf("%d",&num); //键盘输入一个正整数并赋值给num
while(num > 0) //当num = 0时,循环就结束,这个循环是这个程序最关键的.一直循环到当num除以10为0时就说明num的所有位数都已经+完了。
{
sum = sum + num % 10; //输入一个正整数,取10的余就把最后一位取出来,然后加上sum
num = num / 10; //num除以10,现在的num就为把最后一位去掉后的数,比如1234,除10以后就为123
}
printf("和为:%d\n",sum);
}

2007-04-24 16:45
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
#include<stdio.h>
int main()
{
char str[100];
int sum=0;
scanf("%s",str);
for(int i=0 ; str[i]!='\0 ';i++ )
sum+=(str[i]-'0');
printf("%d\n",sum);
return 0
}

倚天照海花无数,流水高山心自知。
2007-04-24 19:39
Throne
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-4-25
收藏
得分:0 
如果不是四位整数,而是任意一个整数,求每位数相加之和,那要怎么写这段程序?
2007-04-25 17:27
sunnyrain
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-4-24
收藏
得分:0 

27楼已经说了呀~~
不管多少位都适用

2007-04-25 22:02
快速回复:任意输入一个4位数,求他的数字之和,(如:5173,数字之和是:16
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037454 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved