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]的整数。以便用来相加.
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();
}本回答被网友采纳
#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;
}本回答被网友采纳
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;
}
#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';
这句话是什么意思?
能解释下吗?大哥!
sum += buff[i] - '0';
这句话是什么意思?
能解释下吗?大哥!