在C编程中求和不同的数字

时间:2017-11-25 17:37:26

标签: c loops numbers

我必须在C中编写一个程序,它将整数中的所有数字相加。如果我想总结这些数字,我明白该怎么做。但问题是,我必须只加上不同的数字 例如:在122中有两个2,所以我必须将它们总和为1 + 2。你能帮我吗?

1 个答案:

答案 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;
}

我在评论中提到的这段代码的解释,它可能不适用于所有测试用例,继续尝试自己。