|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.10.2010, 22:05 | #1 |
Новичок
Джуниор
Регистрация: 11.10.2010
Сообщений: 2
|
Матрица вещественных чисел
Помогите решить задачу.
Дана матрица вещественных чисел. Найти максимальный элемент и наиболее удалённый от него (по значению) элемент матрицы. Поиск осуществлять в квадратном контуре, центром которого является максимум, а длина стороны - три элемента массива. Вот мой код: #include "stdafx.h" #include "stdlib.h" #include "conio.h" void main() { int i,j; srand(0); const int m=8,n=6; float a[m][n]; for(i=0;i<m;i++) { for(j=0;j<n;j++) a[i][j]=(double)rand()/(RAND_MAX+1)*(10-(-2))+(-2); } for(i=0;i<m;i++) { for (j=0;j<n;j++) printf(" %5.1f",a[i][j]); printf("\n"); } float max=a[0][0]; int indmx=0; int indmy=0; for(i=0;i<m;i++) { for(j=0;j<n;j++) { if(max<a[i][j]) max=a[i][j]; indmx=i; indmy=j; } } float min=a[indmx-1][indmy-1]; for(i=indmx-1;i<m;i++) { for(j=indmy-1;j<n;j++) { if(min>a[i][j]) min=a[i][j]; } } printf("max=%2.1f\nmin=%2.1f\n",max ,min); getch(); } |
13.10.2010, 00:49 | #2 |
Пользователь
Регистрация: 12.10.2010
Сообщений: 79
|
// test_2.cpp: определяет точку входа для консольного приложения.
// Код HTML:
#include "stdafx.h" #include "stdlib.h" #include "conio.h" int _tmain(int argc, _TCHAR* argv[]) { int i,j; //srand(0); const int m=8,n=6; float a[m][n]; for(i=0;i<m;i++) { for(j=0;j<n;j++) /* псевдо матиматический бред a[i][j]=(double)rand()/(RAND_MAX+1)*(10-(-2))+(-2); } */ // просто и ясно a[i][j]=(double)rand()/0xFFF; } for(i=0;i<m;i++) { for (j=0;j<n;j++) printf(" %5.1f",a[i][j]); printf("\n"); } float max=a[0][0]; int indmx=0; int indmy=0; /* старый код for(i=0;i<m;i++) { for(j=0;j<n;j++) { if(max<a[i][j]) max=a[i][j]; indmx=i; indmy=j; } } */ // новый код for(i=0;i<m;i++) { for(j=0;j<n;j++) { if(max<a[i][j]) { // здесь взять в скобки max=a[i][j]; indmx=i; indmy=j; } } } // здесь закрыть дополнительную скобку /* таким образом запись максимального значения и его индекса получается одним блоком раньше он всегда записывал последние значения i и о */ /* старый код float min=a[indmx-1][indmy-1]; for(i=indmx-1;i<m;i++) { for(j=indmy-1;j<n;j++) { if(min>a[i][j]) min=a[i][j]; } } */ // новый код float min=a[indmx-1][indmy-1]; for(i=indmx-1;i<indmx+2;i++) { // изменено услови i<m на indmx+2 for(j=indmy-1;j<indmy+2;j++) { // изменено условие j<n j<indmy+2 if(min>a[i][j]) min=a[i][j]; } } /* таким образом проверяются все числа в требуемой области раньше область была не верна */ printf("max=%2.1f\nmin=%2.1f\n",max ,min); getch(); return 0; }
Имею хитрый план по личному обогащению
Последний раз редактировалось _ILYA_; 13.10.2010 в 00:56. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Массив вещественных чисел | ~Mi@mi~ | Помощь студентам | 2 | 11.10.2010 21:16 |
дан массив вещественных чисел, матрица | newgener | Помощь студентам | 5 | 26.05.2010 17:00 |
Генератор ВЕЩЕСТВЕННЫХ чисел в С++ | Kotjona | Помощь студентам | 4 | 08.05.2010 00:24 |
Файл вещественных чисел. | toybike | Общие вопросы C/C++ | 8 | 10.12.2009 20:02 |
Файл вещественных чисел | bullvinkle | Общие вопросы C/C++ | 1 | 18.06.2009 01:31 |