C-输入数字的总和,直到输入一个0的数字

C-输入数字的总和,直到输入一个0的数字,c,C,所以,我想决定它是否以0结尾的方法是将它除以10,从而得到模。。这是密码。。我还尝试了一个while循环,但没有成功。。我做错了什么?我是否采取了正确的方法 #include <stdio.h> int main(){ int a = 0, b = 1; printf("Enter the numbers: "); for(int i=0; b % 10 != i; a++){ scanf("%c"

所以,我想决定它是否以0结尾的方法是将它除以10,从而得到模。。这是密码。。我还尝试了一个while循环,但没有成功。。我做错了什么?我是否采取了正确的方法

#include <stdio.h>
 
int main(){
    int a = 0, b = 1;
    printf("Enter the numbers: ");

    for(int i=0; b % 10 != i; a++){
        scanf("%c", &b);
    }
    printf("You have entered %c numbers", a);

return 0;
}
#包括
int main(){
INTA=0,b=1;
printf(“输入数字:”);
对于(int i=0;b%10!=i;a++){
scanf(“%c”和“b”);
}
printf(“您已输入%c个数字”,a);
返回0;
}
  • 错误的扫描参数
  • 错误的逻辑表达式

  • b%10!=i
    似乎不检查最后一位数字是否为0。@BillLynch
    i
    在该代码中始终为0。
    %c
    用于读取单个字符。使用
    “%d”
    读取数字。同样,对于
    printf
    ,for循环对输入的数字或输入的数字没有太大的感觉?
    int main(){
        int a = 0, b = 1;
    
        while(b%10)
        {
            scanf("%d", &b);
            a += !!(b%10);
        }
        printf("You have entered %d numbers", a);
    
    return 0;
    }