Мне было предложено создать программу на C, в которой будет принимать 2d-массив, например. 3 числа и каждый раз найдет сопротивление одного числа, умножив его, пока не будет только одно число. Тогда результат каждого числа будет подан во вторую строку массива.Найти максимальный размер 2d-массива
Например.
Например, постоянство числа 2736 равно 0: сначала мы находим 2 * 7 * 1 * 6 = 252
, а затем 2 * 5 * 2 = 20
и, наконец, 2 * 0 = 0
, где мы приходим к одной цифре. (который в этом примере равен 0).
Числа для массива будет дано из текстового файла в следующем формате:
2716 2720
так что номера будут [2716,2720] : 2176 2177 2178 2179 21720
Графический presentaion каждого упорством будет
Number | Persist
-----------------
2716 | 3
2717 | 4
2718 | 2
2719 | 3
2720 | 1
и массив после wil be:
array[5][2] = { {2716,3}, {2717,4}, {2718,2}, {2719,3}, {2720,1} };
так в конце концов, мне нужно, чтобы найти номер с maxinum persistanse (в моем случае это 2717) и fprintf его в текстовый файл под названием persist.out со строки и столбца, как это:
2717 4
Моя проблема в последней части копии массива.
Также нам нужно проверить, имеет ли большее число число больше, а затем найдет максимальное число.
Я написал код для последней части, но не очень стабилен, и я не могу сделать чек, который я хочу.
ОБНОВЛЕНО!
#include <stdio.h>
int multiply_digits(int x)
{
int z = 1;
while (x)
{
z *= x % 10;
x /= 10;
}
return z;
}
int main() {
int a;
int b;
FILE *input, *output;
input = fopen("persist.in","r");
fscanf(input,"%d %d",&a, &b);
fclose(input);
int c = (b - a) + 1;
int array[c][2];
array[0][0] = a;
for(int i = 1; i < c; i++)
{
array[i][0] = a + i;
}
int i, j;
for (i=0; i< c; ++i)
{
int n = array[i][0];
int j = 0;
while (n>9)
{
n = multiply_digits(n);
j++;
}
array[i][1] = j;
}
for (i = 0; i < c; i++)
{
for (j = 0; j < 2; j++)
{
printf("%d ", array[i][j]);
}
printf("\n");
}
printf("\n");
int indexOfMaximum;
int maximum = array[0][1];
for (i = 0 ; i < c ; ++i)
{
if (array[i][1] >= maximum) {
maximum = array[i][1];
indexOfMaximum = i;
}
}
}
В чем вопрос? – 2501
Как я могу найти число с максимальным упорством и как скопировать строку и ее столбец в txt-файл –
, вы должны проверить результат 'fopen'. –