救命,怎么写这道题,c语言的

img

img

img

#include <stdio.h>
#include <stdlib.h>
int main()
{
char a1,a2,a3,a4;
int sum;
scanf("%c%c%c%c",&a1,&a2,&a3,&a4);
sum = a1+a2+a3+a4-4*'0';
printf("%d",sum);
return 0;
}


 
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a, sum;
    scanf("%d",&a);
    sum = 0;
    while(a){
    sum += a%10;
    a /= 10;
    }
    printf("%d",sum);
    return 0;
}

sum = (int)(a+b+c+d);这样得到的并不是四位数的和,二是其对应的ascii码的和,需要减去'0'才是正确的。
sum = a+b+c+d - 4 * '0';

另一种写法是:


#include<stdio.h>
int main()
{
    int n;
    int sum = 0;
    printf("Input a number with 4-digit:");
    scanf("%d",&n);
    while (n)
    {
        sum += n%10;
        n/=10;
    }
    printf("\nThe result is sum=%d",sum);
    return 0;
}