我必须在C中编写一个程序,它将整数中的所有数字相加。如果我想总结这些数字,我明白该怎么做。但问题是,我必须只加上不同的数字 例如:在122中有两个2,所以我必须将它们总和为1 + 2。你能帮我吗?
答案 0 :(得分:0)
首先,你应该把一些代码放在这里,无论你尝试什么,给你基本的想法来解决你的问题我将简单的代码放在下面。
#include<stdio.h>
#include<malloc.h>
int main()
{
int input, digit, temp, sum = 0;
printf("Enter Input Number :\n");
scanf("%d",&input);
temp = input;
//first find how many digits are there
for(digit = 0 ; temp != 0 ;digit++, temp /= 10);
//create one array equal to no of digits, use dynamic array because once you find different digits you can re-allocate memory and save some memory
int *p = malloc(digit * sizeof(int));
//now store all the digits in dynamic array
p[0] = input % 10;//1
for(int i = 0; i < digit ;i++) {
input /= 10;
p[i+1] = input %10;
if(p[i] != p[i+1])
sum = sum + p[i];
}
printf("sum of different digits : = %d \n",sum);
free(p);
p = 0;
return 0;
}
我在评论中提到的这段代码的解释,它可能不适用于所有测试用例,继续尝试自己。