从键盘读入两个字符串,将其中非数字字符删去 剩余数字字符转化为int整形,相加后输出

这个为啥运行结果不对

img

你是不是用python用多了?

里面sum+=int(str[i]) 要改为 sum+= (str[i]-'0') 这样将数字字符转为相应数字,int(str[i])是将数字字符转为相应的ASCII码,然后sum要初始化为0,quzheng的返回值要改为int类型,修改如下,供参考:

#include <stdio.h>
#include <string.h>

int quzheng(char str[]);

int main(){
    char str1[500],str2[500];
    
    int i;
    gets(str1);
    gets(str2);
    printf("%d\n",quzheng(str1));
    printf("%d\n",quzheng(str2));
    return 0;
}

int quzheng(char str[]){
    int i,sum=0;
    for(i=0;str[i]!='\0';i++){
        if(str[i]>='0'&&str[i]<='9'){
            sum+=(str[i]-'0');
        }
    }
    
    return sum;
}

img