c语言输入一个字符串,求所有数字之和
这是我编写的一个代码,不知道哪里错了,希望有高手指点,谢谢!#include"stdio.h"#include"string.h"main(){chars[20];int...
这是我编写的一个代码,不知道哪里错了,希望有高手指点,谢谢!
#include "stdio.h"
#include "string.h"
main()
{
char s[20];
int i,sum=0;
printf("输入:");
scanf("%s",s);
printf("所有数字之和:%d\n",sum);
for (i=0;s[i]!='\0';i++)
if(s[i]>='0' && s[i]<='9')
sum=sum+s[i]-48;
printf("\n");
}
例如输入:1 2 3,可结果是;1。
即不论输入什么字符串,输出的总是第一个数字,而不是所有数字之和 展开
#include "stdio.h"
#include "string.h"
main()
{
char s[20];
int i,sum=0;
printf("输入:");
scanf("%s",s);
printf("所有数字之和:%d\n",sum);
for (i=0;s[i]!='\0';i++)
if(s[i]>='0' && s[i]<='9')
sum=sum+s[i]-48;
printf("\n");
}
例如输入:1 2 3,可结果是;1。
即不论输入什么字符串,输出的总是第一个数字,而不是所有数字之和 展开
5个回答
推荐于2016-01-04 · 知道合伙人教育行家
关注
展开全部
遍历整个字符串,判断是否是数字,再计算累加和:
#include<stdio.h>
#include<string.h>
int main()
{
char a[1000];//定义字符串
int i,sum=0,n;
gets(a);//输入字符串
n=strlen(a);//求字符串长度
for(i=0;i<n;i++)//遍历字符串判断是否是数字
if(a[i]>='0'&&a[i]<='9')//如果是数字就累加
sum+=a[i]-'0';
printf("字符串中数字的和为:%d\n",sum);//保留数字累加和
return 0;
}
/*
运行结果:
jkahf343124asdf asfdasdf1
字符串中数字的和为:18
*/
展开全部
首先定义一个字符数组,然后将输入的字符串按%s格式化读取到该字符数组中,再从该数组的首地址依次访问,读取每一个字符,然后将其ASCII码值减去0的ASCII码值,就是该字符对应的数值,最后累加到一个int型变量中即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//运算过后才输出呢
#include "stdio.h"
#include "string.h"
main()
{
char s[20];
int i,sum=0;
printf("输入:");
scanf("%s",s);
for (i=0;s[i]!='\0';i++)
if(s[i]>='0' && s[i]<='9')
sum=sum+s[i]-48;
printf("所有数字之和:%d\n",sum);
printf("\n");
}
#include "stdio.h"
#include "string.h"
main()
{
char s[20];
int i,sum=0;
printf("输入:");
scanf("%s",s);
for (i=0;s[i]!='\0';i++)
if(s[i]>='0' && s[i]<='9')
sum=sum+s[i]-48;
printf("所有数字之和:%d\n",sum);
printf("\n");
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-11-03 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
void staticsChar()
{
int nInput,nCount=0;
char ch[NUM];
while (1) {
nInput=getchar();
if(nInput=='\n' || nCount>=NUM){
break;
}
ch[nCount++]=nInput;
}
int a=0;int b=0;int c=0;int d=0;int e=0;int other=0;
for(int j=0;j<nCount;j++){
char temp=ch[j];
if(temp=='a'){a++;}
else if(temp=='b'){b++;}
else if(temp=='c'){c++;}
else if(temp=='d'){d++;}
else if(temp=='e'){e++;}
else{other++;}
}
printf("a=%d,b=%d,c=%d,d=%d,e=%d,other=%d\n",a,b,c,d,e,other);
}
{
int nInput,nCount=0;
char ch[NUM];
while (1) {
nInput=getchar();
if(nInput=='\n' || nCount>=NUM){
break;
}
ch[nCount++]=nInput;
}
int a=0;int b=0;int c=0;int d=0;int e=0;int other=0;
for(int j=0;j<nCount;j++){
char temp=ch[j];
if(temp=='a'){a++;}
else if(temp=='b'){b++;}
else if(temp=='c'){c++;}
else if(temp=='d'){d++;}
else if(temp=='e'){e++;}
else{other++;}
}
printf("a=%d,b=%d,c=%d,d=%d,e=%d,other=%d\n",a,b,c,d,e,other);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-04-25
展开全部
scanf("%s",s);
改为
gets(s);
改为
gets(s);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询