#include <stdio.h>
#include <stdlib.h>
#define TEN 10
int main()
{
int number = 0;
int digit = 0;
int last_digit = 0;
int digit_sum = 0;
int i = 0;
while (i == 0)
{
printf("Please Enter A Positive Number! \n"); //explaining
scanf("%d",&number);
if (number > 0)
{
i++;
}
}
while (number > 0)
{
digit = number % TEN; //breaking number into digits
number /= TEN;
if (last_digit != digit) //comparing digits
{
last_digit = digit;
digit_sum += digit;
}
}
printf("The Sum Of The Digits Is : %d",digit_sum);
return 0;
代码将划分成数位并检查是否有被欺骗的数字,万一有,只有其中一人将计算例如:3211 3 + 2 + 1,但我的问题是,该代码将不会像31211数字工作我感谢任何形式的帮助。
一个可能的解决方案将输入作为字符串读取,对其进行排序(例如,“31211”变为“11123”),并删除连续的重复项(所以字符串“11123”变为“123”),然后执行求和。 –
欢迎来到SO。请参观参观,了解要问什么问题以及如何。这里没有问题。此外,请在此处张贴时请正确缩进代码。 –
你能给我一个例子吗? – SaKaMoToSaN15