C语言中整数对到整数对的转换

46qrfjad  于 2022-12-17  发布在  其他
关注(0)|答案(1)|浏览(142)

在进行作业时,其中:

  • 程序以文本1 + 22 + 333 + 4444 + . . . + nn. . . n }n及其结果的形式打印出和。数字n ∈ {1,2,.. .,9}由用户提供 *

我卡在了一个点上,我不知道如何把数字粘成一个整数,所以如何把“333”转换成333,等等。
下面是我的代码:

#include <stdio.h>
#include <string.h>

int main()
{
    printf("Program calculates a sum.\nAutor: Jakub Drozd\n");
    int n;
    int sum = 0;
    printf("Enter the length of the sum (no more than 9): ");
    while (scanf_s("%d", &n)!=1 || n < 1 || getchar()!='\n')
    {
        printf("Wrong input, enter the length of the sum: ");
        int c;
        while ((c = getchar()) != '\n' && c != EOF)
            ;
    }
    for (int i = 1; i <= n; i++)
    {
        if (i == 1);
        else { printf(" + "); }
        for (int j = 1; j <= i; j++)
        {
            printf("%d", i);
        }
    }
    printf("\nEnd of the program\n");
    return 0;
}

正如你所看到的,程序正确地显示了要相加的数字,但是我不知道如何将它们转换成整数来求和。

cs7cruho

cs7cruho1#

不要打印出单个数字,而是将它们加在一起形成实际值,然后将它们加到您呈现的总和中。
数字的产生可能就像

int number = 0;
for (int j = 1; j <= i; ++j)
{
    number = number * 10 + i;
}

然后将数字相加就像创建一个变量来保存总和一样简单,然后向其添加:

int sum = 0;
// ...
sum += number;

相关问题