C语言:输入一串数字然后求和

output是这样的:
enter 8 digits: 1234567
sum is 36
抱歉,落了一个8,输入应该是12345678
另外,怎样限制输入数字又能有8个呢?比如当输入12345678后,继续按没有作用。

第1个回答  2009-02-05
for(i=0;buff[i]!=0;++i)
sum += buff[i] - '0';
这句话是什么意思?
能解释下吗?大哥!
回答者: shaocl112102 - 试用期 一级 2-5 09:30
------------------------------------------------------------
把buff里的字符逐个与字符'0'相减,哦,是他们的ASCII码相减,忘了0的ASCII码了,不过不管它是多少吧,反正123456789这些的ASCII码与0是递增的关系,比如:0的ASCII是 45,那3的就是 48了,用48-45不就是3了吗?这样刚好可以得出buff[i]的整数。以便用来相加.
第2个回答  2009-02-05
#include<stdio.h>
#include<conio.h>

void main()
{
char a;
int sum=0;
printf("enter 8 digits:");
while((a=getch())!=13)
{
sum+=(a-'0');
printf("%c",a);
}

printf("\nsum is %d",sum);

getch();
}本回答被网友采纳
第3个回答  推荐于2018-03-23
这个函数可以求一个整数的各位数之和。

int fun_sum(int n){
int sum=0,temp;
while(n){
temp=n%10;
sum+=temp;
n/=10;
}
return sum;
}本回答被网友采纳
第4个回答  2009-02-05
#include <stdio.h>
#include <stdlib.h>

int main(int argc, _char* argv[])
{
char buff[256]={0};
scanf("%s",buff);
int i;
int sum = 0;
for(i=0;buff[i]!=0;++i)
sum += buff[i] - '0';
printf("%d\n",sum);
system("pause");
return 0;
}
第5个回答  2009-02-05
for(i=0;buff[i]!=0;++i)
sum += buff[i] - '0';
这句话是什么意思?
能解释下吗?大哥!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网