Пользователь вводит с клавиатуры количество строк и количество столбцов. программа создает динамический двумерный массив и заполняет его случайными значениями в диапазоне от 1 до 999. необходимо подсчитать сумму всех этих значений и полученное число по цифрам записать в одномерный динамический массив. одна цифра – один элемент. на с
107
126
Ответы на вопрос:
#include < stdio.h> #include < stdlib.h> #include < locale.h> #include < malloc.h> int main() { int **a; int i, j, n, m; setlocale(lc_all, "rus"); printf("введите количество строк: "); scanf("%d", & n); printf("введите количество столбцов: "); scanf("%d", & m); //выделение памяти a = (int**)malloc(n * sizeof(int*)); long int sum; /* заполнение массива случайными числами */ srand(time(null)); for (i = 0; i < n; i++) { a[i] = (int*)malloc(m * sizeof(int)); for (j = 0; j < m; j++) { a[i][j] = rand() % 999 + 1; sum += a[i][j]; } } /* вывод массива */ for (i = 0; i < n; i++) { for (j = 0; j < m; j++) printf("%5d ", a[i][j]); printf("\n"); } printf("сумма всех элементов = %d\n", sum); /* подсчет количества цифр в сумме всех элементов */ int k = 0, buf = 0; n = sum; while (n ! = 0) { n /= 10; k++; } int *b; //выделение памяти b = (int*)malloc(k * sizeof(int)); /* заполнение массива цифрами */ i = 0; n = sum; while (n ! = 0) { b[i] = n % 10; n /= 10; i++; } /* переворачиваем массив с цифрами */ for(i = 0; i < k / 2; i++) { int tmp = b[i]; b[i] = b[k - i - 1]; b[k - i - 1] = tmp; } /* выводим массив */ printf("массив из цифр: "); for (i = 0; i < k; i++) printf("%d ", b[i]); //getch(); return 0; }
Нужно взвесить любые две монеты. если они весят одинаково, то фальшивая та которую не взвешивали. если одна из монет легче, то она и фальшивая
Популярно: Информатика
-
alexasnowbell08.05.2020 04:57
-
ddaler09.05.2020 11:25
-
Milanusia06.12.2022 11:04
-
azamatyusupov04.09.2022 02:20
-
Nicktat30.04.2020 01:10
-
BOYECH25.09.2022 19:08
-
Шамшербек21.07.2020 10:36
-
femjimin02.02.2022 09:11
-
radmirhik270610.06.2022 11:20
-
3423425213.03.2023 21:04