11.10.2012, 19:31 | #1 (permalink) |
Member
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Двумерный массив в C++
Заполнить двумерный числовой массив В(4, 6) целыми числами. Найти первый положительный элемент массива и номер строки и столбца, где он находится. Затем найти и вывести на экран максимальные элементы каждой строки массива. #include<conio.h> #include<stdlib.h> #include<stdio.h> void main() { int const n=4,b=6; int i,j, Array[n][b]; int max; clrscr(); randomize(); for (i=0; i<n; i++) { printf("\n"); printf(" ----------------------------------\n"); for (j=0;j<b;j++) { Array[i][j]= -10+int(20*float(random(n))/float(n-1)); printf("%4.1d |", Array[i][j]); } } printf("\n ----------------------------------\n"); for (i=0; i<n; i++) { for (j=0;j<b;j++) { if (Array[i][j]>0) { printf("\n%i-stroka",i+1); printf("\n%i-stolbec",j+1); } break; } } max=Array[0][0]; /* for (i=0; i<n; i++) { */ for (j=0;j<b;j++) { if (max<Array[i][j]) { max=Array[i][j]; } else max=max; } //} printf("\n max%i ",max); getch(); } ввел массив, а получить "координаты" именно первого положительного элемента не могу( получается либо в первом столбце все "+", либо в строке все"+"....и с мах та же проблема...как работать именно с отдельной строкой или столбцом? |
11.10.2012, 19:31 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Информативные темы по вашему запросу Двумерный массив Паскаль. Двумерный массив Двумерный массив В Паскале двумерный массив Двумерный массив Двумерный массив. Задача |
12.10.2012, 07:39 | #2 (permalink) |
404
Регистрация: 10.01.2010
Сообщений: 1,749
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3868
|
Ну во-первых
max=max; - вообще убило. Компилятор Dev-Cpp Код:
#include<conio.h> #include<stdlib.h> #include<stdio.h> #define N 4 #define B 6 int main() { int i, j, Array[N][B]; int max; //заполнение for (i=0;i<N;i++) { printf("\n ----------------------------------\n"); for (j=0;j<B;j++) { Array[i][j]= -10+rand()%20; printf("%4d |", Array[i][j]); } } //нахождение максимальных printf("\n ----------------------------------\n"); for (i=0;i<N;i++) { max=Array[i][0]; for (j=0;j<6;j++) { if(Array[i][j]>max) max=Array[i][j]; } printf("\nmax in %d-row: %d",i+1,max); } //первый положительный int pos=0; for(i=0;i<N;i++) { for(j=0;j<B;j++) if (Array[i][j]>0) { printf("\n1-st positive element: %d (%d-row; %d-col)",Array[i][j],i+1,j+1); pos=1; break; } if(pos==1) break; } getch(); } Для целочисленных не надо писать %3.1d, так как часть .1 - не имеет смысла. Собственно, код рабочий, но "на скорую руку". |
13.10.2012, 21:25 | #3 (permalink) |
Member
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
спасибо большое)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|