求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()得到了数字。:)并且您也没有进行任何调试。请下次先这样做。