29.04.2014, 18:24 | #1 (permalink) |
Member
Регистрация: 16.05.2010
Сообщений: 1,194
Сказал(а) спасибо: 0
Поблагодарили 4 раз(а) в 1 сообщении
Репутация: 1649
|
Задание с двумерными массивами C++
2) Вычислить произведение всех положительных элементов 3) Упорядочить строки так чтобы суммы по строкам возрастали от первой строки к последней. Я пока сделал такое: Код:
#include <iostream.h> #include <stdio.h> #include <conio.h> void main() { int i, n, m, j; double A[10][10], sum, proiz; m=4; n=5; A[1][1]=-9.6; A[1][2]=2.5; A[1][3]=5.4; A[1][4]=-9.9; A[1][5]=1.7; A[2][1]=-7.5; A[2][2]=-7.6; A[2][3]=8.5; A[2][4]=8.8; A[2][5]=1.1; A[3][1]=9.2; A[3][2]=-3.9; A[3][3]=2.1; A[3][4]=2.2; A[3][5]=4.5; A[4][1]=9.4; A[4][2]=7.3; A[4][3]=-4.5; A[4][4]=4.3; A[4][5]=-7.5; cout<<endl<<endl<<endl; cout<<" Matrix before"<<endl<<endl; for (i=1; i<=m; i++) { printf(" "); for (j=1; j<=n; j++) printf("%3.1f ",A[i][j]); printf("\n"); } cout<<endl<<endl<<endl; cout<<" Matrix Sum"<<endl<<endl; sum=0; for(i=0; i<m; i++) { for(j=0; j<n; j++) { sum+=A[i][j]; } cout<<"Sum "<<sum<<" "; sum=0; cout<<endl; } 2) Все работает 3) 0_0 получается надо пузырьковым методом сделать, что бы считались суммы строк и в зависимости от результата, менялись строки местами |
29.04.2014, 18:24 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
В похожих темах обычно много интересных советов Работа с массивами на ассемблере Работа с массивами Две задачи с массивами в Паскале Паскаль. Работа с двумерными массивами |
30.04.2014, 09:59 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Антон, ну так покажи, что наисправлял! Пока я вижу явную путаницу с индексацией матрицы: ввод сделан не на сишный, а на паскалевский манер: индексация с 1, в то время как циклы построены, как положено в СИ, т.е. в предположении индексации с 0.
Попробуй исправить так. Вместо Код:
A[1][1]=-9.6; A[1][2]= 2.5; A[1][3]= 5.4; A[1][4]=-9.9; A[1][5]= 1.7; A[2][1]=-7.5; A[2][2]=-7.6; A[2][3]= 8.5; A[2][4]= 8.8; A[2][5]= 1.1; A[3][1]= 9.2; A[3][2]=-3.9; A[3][3]= 2.1; A[3][4]= 2.2; A[3][5]= 4.5; A[4][1]= 9.4; A[4][2]= 7.3; A[4][3]=-4.5; A[4][4]= 4.3; A[4][5]=-7.5; Код:
A[0][0]=-9.6; A[0][1]= 2.5; A[0][2]= 5.4; A[0][3]=-9.9; A[0][4]= 1.7; A[1][0]=-7.5; A[1][1]=-7.6; A[1][2]= 8.5; A[1][3]= 8.8; A[1][4]= 1.1; A[2][0]= 9.2; A[2][1]=-3.9; A[2][2]= 2.1; A[2][3]= 2.2; A[2][4]= 4.5; A[3][0]= 9.4; A[3][1]= 7.3; A[3][2]=-4.5; A[3][3]= 4.3; A[3][4]=-7.5; |
30.04.2014, 11:38 | #5 (permalink) |
Member
Регистрация: 16.05.2010
Сообщений: 1,194
Сказал(а) спасибо: 0
Поблагодарили 4 раз(а) в 1 сообщении
Репутация: 1649
|
Код:
for(i=0; i<m; i++) { for(j=0; j<n; j++) Код:
double A[10][10] А вот с третьем заданием... Вообще не понимаю как это реализовать. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
30.04.2014, 14:32 | #9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
К сожалению, написать код не могу - на С не программирую, а вот с пониманием процесса помочь попытаюсь.
Прежде всего - сюда: Об алгоритмах упорядочения одномерных массивов Там, правда, Паскаль, но код такой примитивный, что разберешься. Разница в том, что в твоём случае надо сравнивать суммы строк, а переставлять сами строки, что, по-моему, несложно. |
30.04.2014, 15:38 | #10 (permalink) |
Member
Регистрация: 16.05.2010
Сообщений: 1,194
Сказал(а) спасибо: 0
Поблагодарили 4 раз(а) в 1 сообщении
Репутация: 1649
|
Вот такую бредятину я написал:
Код:
for (i=1; i<=m-1; i++) { for (j=1; m-i; j++) { if (for(j=1; j<=n; j++) sum+=A[i][j]; > for(j=1; j<=n; j++) sum+=A[i+1][j];) for (k=0; k<=m; k++) { q=A[i][k]; A[i][k]=A[i+][k]; A[i+1][k]=q; } } } |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|