помогите со 2 пунктом ,преподаватель пишет что программа верна на половину,диагонали параллельные главной их не две, а n + (n - 1) - 1(гл. диагональ).
| Код | #include <iostream> #include <ctime> using namespace std; int main() { int const number=4; int array[number][number]; int positive = 1; bool notnegative = false; int sum = 0; int tmp = 0; int begin, end; for (begin = 0;begin < number;begin++) { for (end = 0;end < number;end++) { array[begin][end] = rand() % 100 - 10; cout << "\t" << array[begin][end] << " "; } cout << "\n"; } cout << "1) The mulply elements, which strings haven't negative numbers \n"; //1)произведение элементов в тех строках, которые не содержат отрицательных элементов; for (begin = 0;begin < number;begin++) { for (end = 0;end < number;end++) { if (array[begin][end] > 0) { notnegative = true; } if (array[begin][end] < 0) { notnegative = false; end = number - 1; } } if (notnegative == false) { cout << "\t" << begin << " string have negative numbers\n"; notnegative = false; } if (notnegative == true) { cout << "\t" << begin << " string haven't negative numbers : "; for (end = 0;end < number;end++) positive = positive * array[begin][end]; cout << positive << "\n"; positive = 1; notnegative = false; } } cout << "2) Max sum of parall diagonalies: \n"; //2)максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. for (begin = 0;begin < number;begin++) { for (end = 1;end < number;end++) { sum = sum + array[begin][end]; begin++; } } for (begin = 1;begin < number;begin++) { for (end = 0;end < number - 1;end++) { tmp = tmp + array[begin][end]; begin++; } } if (sum > tmp) cout << "\tMax sum of parall diagonales : " << sum << "\n"; else cout << "\tMax sum of parall diagonales : " << tmp << "\n"; system("PAUSE"); return 0; }
|
|