Арифметический операции с двумерным массивом long int - C (СИ)
Формулировка задачи:
Вообщем ситуация такая:
1) Есть массив double K[4]; Он заполнен некоторыми ненулевыми числами (проверено).
2) Есть массив long int n[12][2048]; Он заполнен целыми неотрицательными числами (на самом деле не очень большими, примерно до 10 000).
3) Вот я хочу получить новый массив, который получается так
Но в результате всего этого получается непойми какой массив. Т.е. если до цикла из 2ого for было например n[1][1] = 10; K[1] = 2.0 (то есть должно получится по хорошему 10/2.0 = 5), то после этого цикла получается непонятно откуда взявшееся большое число, даже бывает что отрицательное, хотя как K[1] так и n[1][1] были положительными.
Это только часть кода, потому что код большой, но значения в массив n и K я проверял прямо перед циклом в цикле.
На вас одна надежда
for(i=0; i<=11; i++)
for(j=0; j<=2047; j++)
n[i][j] = n[i][j]/K[i];Решение задачи: «Арифметический операции с двумерным массивом long int»
textual
Листинг программы
for(j=0; j<=2047; j++) {
printf("%d ", n[1][j]);
n[1][j] = n[1][j]/K[0];
printf("%d %f\n", n[1][j], K[0]);
}
Объяснение кода листинга программы
- Переменная
jинициализируется значением 0, а условие цикла for требует, чтобы она была не больше 2047. Это означает, что цикл будет выполняться 2048 раз. - В каждой итерации цикла переменная
jувеличивается на 1. - В каждой итерации цикла выводится значение
n[1][j]. - Значение
n[1][j]делится наK[0]. - Результат деления записывается обратно в
n[1][j]. - Выводится новое значение
n[1][j]. - Выводится значение
K[0]. - Цикл завершается, когда значение
jстановится равным 2048.