Форум программистов, компьютерный форум CyberForum.ru

В матрице найти элементы min и max и найти в каких индексах они находятся (столбец и строка) - C++

Восстановить пароль Регистрация
 
DjSwatPro
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 78
11.05.2014, 12:45     В матрице найти элементы min и max и найти в каких индексах они находятся (столбец и строка) #1
Задание: Дан массив 20x5.
В нем найти элементы min и max и найти в каких индексах они находятся. (столбец и строка).
Вроде реализовал. Но какой-то косяк и выводятся громадные цифры, хотя в другмо компе было все норм.
И осталось реализовать, чтоб не 1 число min и максимльное выводилось, а все, котоыре представлены.

Думал делать новый массив. Выводит как бы кол-ва, но индекс 1 у всех.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
 
int main()
{
FILE *fp;
int n=5,m=20;
int a[n][m];
int b[n][m];
srand(time(NULL));
                  for (int i=0;i<n;i++)
                  for (int j=0;j<m;b[i][j++]=rand()%20-10);
                  fp=fopen("1.txt","wt");
 
                  for (int i=0;i<n;i++){
                  for (int j=0; j<m;j++)
                  fprintf(fp,"%i ",b[i][j]);
                  fprintf(fp,"\n");
                  }
fclose(fp);
 
fp=fopen("1.txt", "r");
if (fp=NULL){
             puts("error");
             getch();
             return 1;}
             
int min=0; int max=0; int yy,y,q,qq,i;
    for (int i=0;i<n;i++){
        for (int j=0;j<m;j++){
            fscanf(fp,"%i ", &a[i][j]);
            printf ("%i ",a[i][j]);
            
            if (a[i][j]<min)
            {min=a[i][j];
            y=i;
            yy=j;}
            
            if (a[i][j]>max)
            {max=a[i][j];
            q=i;
            qq=j;}
}
printf("\n");
}
printf ("%i [%i;%i]\n",min,y=y+1,yy=yy+1);
printf ("%i [%i;%i]\n",max,q=q+1,qq=qq+1);
 
fclose(fp);
 
fp=fopen("1.txt","a");
if (fp=NULL){
             puts("error");
             getch();
             return 1;
}
 
fprintf(fp,"\n");
fprintf(fp,"SAM DOPISHU");
 
fclose(fp);
 
 getch();
 return 0;
}
Добавлено через 1 час 25 минут
аппппп

Добавлено через 18 часов 42 минуты
пррр
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2014, 12:45     В матрице найти элементы min и max и найти в каких индексах они находятся (столбец и строка)
Посмотрите здесь:

C++ Сформировать одномерный массив из 35 четырехзначных нечетных чисел, найти min/max элементы и их индексы
Создать матрицу 7х7, найти максимальный и минимальный элементы, и поменять строки где они находятся C++
C++ Подсчитать в массиве среднее арифметическое всех элементов, найти макси мальный max и минимальный min элементы массива.
C++ Обработка Стека (найти Max и Min Элементы)
C++ Массивы. Найти в матрице максимальный и минимальный элементы, поменять местами строки, в которых они расположены
Занулить элементы в матрице между min и max C++
В матрице 3 х 3 найти max и min значения C++
Не получается удалить столбец с max и min элементом в матрице C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,195
Завершенные тесты: 1
11.05.2014, 13:12     В матрице найти элементы min и max и найти в каких индексах они находятся (столбец и строка) #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ваше исправленое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
int main()
{
    FILE *fp;
    const int n=5,m=20;
    int a[n][m];
    int b[n][m];
    srand((unsigned int)time(NULL));
    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++)
            b[i][j]=rand()%20-10;
    fp=fopen("1.txt","wt");
    for (int i=0;i<n;i++)
    {
        for (int j=0; j<m;j++)
            fprintf(fp,"%i ",b[i][j]);
        fprintf(fp,"\n");
    }
    fclose(fp);
    fp=fopen("1.txt", "r");
    if (fp==NULL) // обратите внимание 2 знака равно!
    {
        puts("error");
        getch();
        return 1;
    }
 
    int min,max,yy=0,y=0,q=0,qq=0;
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<m;j++)
        {
            fscanf(fp,"%i", &a[i][j]);
            printf ("%3i",a[i][j]);
            if(i==0 && j==0)
            {
                min=max=a[0][0];
            }else
            {
                if (a[i][j]<min)
                {
                    min=a[i][j];
                    y=i;
                    yy=j;
                }
                if (a[i][j]>max)
                {
                    max=a[i][j];
                    q=i;
                    qq=j;
                }
            }
        }
        printf("\n");
    }
    printf ("%i[%i;%i]\n",min,y,yy);
    printf ("%i[%i;%i]\n",max,q,qq);
 
    fclose(fp);
 
    fp=fopen("1.txt","a");
    if (fp==NULL){
        puts("error");
        getch();
        return 1;
    }
 
    fprintf(fp,"\n");
    fprintf(fp,"SAM DOPISHU");
 
    fclose(fp);
 
    getch();
    return 0;
}
Добавлено через 4 минуты
для вывода всех экстремумов замените строки 60-61 на
C++
1
2
3
4
5
6
7
8
9
10
    puts("minimumy:\n");
    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++)
            if(a[i][j]==min)
                printf ("%i[%i;%i] ",a[i][j],i,j);
    puts("\nmaximumy:\n");
    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++)
            if(a[i][j]==max)
                printf ("%i[%i;%i] ",a[i][j],i,j);
DjSwatPro
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 78
11.05.2014, 16:02  [ТС]     В матрице найти элементы min и max и найти в каких индексах они находятся (столбец и строка) #3
огромное спасибо!
Yandex
Объявления
11.05.2014, 16:02     В матрице найти элементы min и max и найти в каких индексах они находятся (столбец и строка)
Ответ Создать тему
Опции темы

Текущее время: 07:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru