Добавить массив целых чисел как целое число в C - PullRequest
0 голосов
/ 17 мая 2018

Я должен написать программу, которая хранит целое число одна цифра как время в массиве. Например, 1234 - это [0] 1, a [1] 2, a [2] 3, a [3] 4. Числа будут изначально сохранены как char, поэтому мне нужно преобразовать их в тип int. Цель состоит в том, чтобы взять 2 натуральных числа длиной не более 20 цифр и вывести сумму чисел.

Я должен использовать алгоритм сложения бумаги и карандаша. Решение должно быть сохранено в массиве размером 20, а затем записано на экране. Если выходные данные больше, чем массив размером 20, то выходные данные не должны предоставляться, и на экране должно отображаться «Переполнение целочисленного типа».

Пока у меня закончено это кодирование:

int max;
int max_1;
char number_1[100];
int a;
int max_2;
char number_2[100];
int b;


printf( "\nEnter the total number of digits you wish to display:\n");
scanf_s( "%d", &max);

printf("\nEnter the size of the first integer you wish to add:\n");
scanf("%d", &max_1);
printf("\nEnter the first integer one number at a time seperated by spaces:\n");
while (a = 0, a < max_1, ++a)
{
    scanf_s("%c", number_1[a]);
}

printf("\nEnter the size of the second integer you wish to add:\n");
scanf("%d", &max_2);
printf("\nEnter the second integer one number at a time seperated by spaces:\n");
while (b = 0, b < max_2, ++b)
{
    scanf_s("%c", number_2[b]);
}
    return 0;

Я не могу понять, как преобразовать числа, которые вводятся, в фактическую целочисленную форму, поскольку все они хранятся отдельно в массиве. Также я не уверен, как бы я мог преобразовать целое число обратно в массив размером 20 и как бы я выяснил, будет ли выходной размер 20 или больше.

Я прошу прощения за мой длинный вопрос. Я новичок в кодировании и не слишком хорош в рассуждениях. Я уверен, что есть простое решение для этого, однако я не могу думать об этом. Любые комментарии, решения или предложения помогут.

1 Ответ

0 голосов
/ 17 мая 2018

Простой пример, показывающий, как считывать цифры, одну за другой, непосредственно как целые числа:

int max_1;
printf("\nEnter the size of the first integer you wish to add:\n");
scanf("%d", &max_1);

int number_1[max_1];  // Use variable-length array

printf("\nEnter the first integer one number at a time seperated by spaces:\n");
for (int i = 0; i < max_1; ++i)
{
    scanf_s("%1d", &number_1[i]);
}

После этого каждый элемент в массиве number_1 представляет собой однозначное значение int.Наиболее значимая цифра в индексе 0, наименее значимая цифра в индексе max_1 - 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...