【问题标题】:input and Output with math in CC语言中的数学输入和输出
【发布时间】:2021-06-21 13:59:23
【问题描述】:

示例 输入:12345 输出:(1+2+3+4+5=15)--> (1+5=6) 输出为6 (应该只有一个数字(1-9)

请告诉我如何确保当你输入一个数字时,例如 12345,输出等于和 1 + 2 + 3 + 4 + 5 = 15 然后 1 + 5 = 6。C 语言。非常感谢您的回答!

#include <stdio.h>
    int main(){
        int isicc;
        scanf ("%d", &isicc);
            while (isicc>0){
                int d = isicc%10;
                isicc=isicc /10;
            }
           
        printf ("Your number ", d);
           
    }

【问题讨论】:

  • 它可以编译吗?编译器的信息是什么?总和在哪里计算?
  • 那么,当您在循环中 printf 输出 'd' 时会发生什么?看起来有用吗?也许您应该将它添加到一些累加器 int 变量中?为什么你不只是做你想做的事?
  • 因为我不知道该怎么做。我只是在尝试
  • 您需要先正确执行这些步骤。先画一张流程图,然后用手照着看。 (提示:两个嵌套循环)。然后你可以专注于用正确的语法和细微差别来表达它。

标签: c math


【解决方案1】:

命令后

scanf ("%d", &isicc);

您可以使用此代码获取数字的位数之和:

int sum_digits = 0;
while (isicc > 0) {
    sum_digits += isicc % 10;
    isicc = isicc / 10;
}
isicc = sum_digits;

现在,您只需在另一个循环中重复此过程,只要 isicc 大于 9,该过程就会继续。

【讨论】:

    【解决方案2】:
    #include <stlib.h>    
    #include <stdio.h>
            int main(){
                int isicc;
                scanf ("%d", &isicc);
                   
                isicc = abs(isicc);
                printf ("Your number %d\n", isicc?isicc%9?isicc%9:9:0 );
                   
            }
    

    【讨论】:

    • 真的一样吗?
    • @JDługosz:我相信它提供了相同的输出。老师可能不喜欢这种计算方法。 (哈!)但是输出应该是正确的。
    • 它适用于 0-99 范围内的数字。但是例如对于 180,它会返回 0,而它应该是 9。此外,num % 9 的结果永远不会是 9。也许正确的公式是类似的?
    • 谢谢大家!
    • @Orielno:很好的收获。我想我现在修好了。
    【解决方案3】:

    试试这个程序,它会添加数字并打印总和

    #include <stdio.h>
     int main ()
     {
        int num,n,sum=0;
        printf ("Enter number:");
        scanf (" %d",&num);
       while (num!=0){
            n=num%10;
            sum += n;
            num = num/10;
        }
        printf ("%d",sum);
        return 0;
    }
    

    【讨论】:

    • 这一行是胡言乱语:scanf ("enter the numbers:= %d",&amp;num); 您没有将提示放在scanf 函数调用中。即使修复了scanf,程序的其余部分也会给出错误的输出。对于输入12345,它输出15。正确答案是6
    • 来自 OP:"1 + 2 + 3 + 4 + 5 = 15 然后 1 + 5 = 6"
    • 好的,我明白了。你能告诉我你的代码是如何工作的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2021-11-19
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多