Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
求4位数字的第一位和最后一位之和的C程序_C - Fatal编程技术网

求4位数字的第一位和最后一位之和的C程序

求4位数字的第一位和最后一位之和的C程序,c,C,我已经编写了以下代码,但它被卡住了: #include<stdio.h> #include<conio.h> int main() { clrscr(); unsigned int num; unsigned int rev=0; int rem,sum=0; printf("Enter a 4 digit number:\n"); scanf("%d",&num); rem=num%10; sum=

我已经编写了以下代码,但它被卡住了:

#include<stdio.h>
#include<conio.h>
int main()
{
    clrscr();
    unsigned int num;
    unsigned int rev=0;
    int rem,sum=0;
    printf("Enter a 4 digit number:\n");
    scanf("%d",&num);
    rem=num%10;
    sum=sum+rem;
    while(num!=0)
      { rem=num%10;
        rev=(rev*10)+rem;
        num/10;
      }
    rem=rev%10;
    sum=sum+rem;
    printf("Sum of first and last digits of number=%d",sum);
    getch();
    return 0;
}
#包括
#包括
int main()
{
clrsc();
无符号整数;
无符号整数rev=0;
int-rem,和=0;
printf(“输入4位数字:\n”);
scanf(“%d”和&num);
rem=num%10;
总和=总和+雷姆;
while(num!=0)
{rem=num%10;
rev=(rev*10)+rem;
num/10;
}
雷姆=第10版;
总和=总和+雷姆;
printf(“数字的第一位和最后一位的总和=%d”,总和);
getch();
返回0;
}

编辑:我意识到使用调试工具(如Turbo调试器)检查和调试程序总是更好的。这有助于避免这些琐碎的错误,给初学者一个建议

使用这一行,具体为4位数字:

printf("The sum of first and last digit of %d is: %d",n,n/1000+n%10);
代码中的问题是:

    while(num!=0)
      { rem=num%10;
        rev=(rev*10)+rem;
        num/10;///-------------------->this line do num/=10; instead
      }
请这样更正:

    while(num!=0)
      { rem=num%10;
        rev=(rev*10)+rem;
        num/=10;
      }

要得到最高有效位除以1000,它将返回u最高有效位,要得到最低有效位,则取模10,例如

int rem = num%10;
int sum = num/1000+ rem;

我建议您先阅读,然后相应地编辑您的问题,以吸引更多的人关注您的问题不会更改
num
,因此循环永远不会终止。您需要
num/=10。这似乎是个冗长的方法。您应该检查
scanf()
是否有一个数字,该数字是否在1000..9999范围内(否则在英语的正常规则下它不是4位数字),然后您可以使用
num/1000+num%10
来获得所需的总和。是的,从一个printf()中可以明显看出这一点在循环中或使用Turbo Debugger时:(谢谢。是的。num/10语句中有一个错误。它应该是num/=10。我还没有使用决策控制语句,但是ya,scanf()得到了数字。:)并且您也没有进行任何调试。请下次先这样做。