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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DjSwatPro
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 78
#1

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

11.05.2014, 12:45. Просмотров 223. Ответов 2
Метки нет (Все метки)

Задание: Дан массив 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 минуты
пррр
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2014, 12:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В матрице найти элементы min и max и найти в каких индексах они находятся (столбец и строка) (C++):

Найти и вывести на печать все нулевые элементы матрицы и указать в каких строках и столбцах они находятся - C++
Парни, помогите с этим заданием.. &quot;Написать программу, задающую матрицу А размером 4x4 с вещественными элементами, вводимыми с клавиатуры...

В матрице 3 х 3 найти max и min значения - C++
На практике задали 2 задачи по C++ вот сижу вообще не понимаю что, куда хотя пол года назад решал их ) Кому не сложно помогите: 1. В...

Не получается удалить столбец с max и min элементом в матрице - C++
Не получается удалить столбец с max и min элементом в матрице!!! int main() { randomize(10); int n,min=0,max=0,k,p;...

Найти в матрице А max элемент, все элементы в столбце до max умножить на 2 - C++
Всем доброго вечера. Возникла проблема с задачей, прошу помочь. В матрице А найти max элемент, все элемент, расположенные в столбце до...

Найти max и min, если min левее max, то среднее арифметическое между ними - C++
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; void main() { int n,a; int...

Обработка Стека (найти Max и Min Элементы) - C++
подскажите пожалуйста....я создал стек....как мне теперь в нём найти Max и Min Элементы?

2
zss
Модератор
Эксперт С++
6483 / 6046 / 1983
Регистрация: 18.12.2011
Сообщений: 15,676
Завершенные тесты: 1
11.05.2014, 13:12 #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);
1
DjSwatPro
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 78
11.05.2014, 16:02  [ТС] #3
огромное спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2014, 16:02
Привет! Вот еще темы с ответами:

Занулить элементы в матрице между min и max - C++
сообственно нужно написать функцию которая будет занулять элементы между минимальным и максимальным ну я смог найти места минимального и...

Создать матрицу 7х7, найти максимальный и минимальный элементы, и поменять строки где они находятся - C++
Нужно создать масив 7 на 7 найти максимальный и минимальный елемент и поменять строки где находятся эти елементы Вот собственно написал,...

Сформировать одномерный массив из 35 четырехзначных нечетных чисел, найти min/max элементы и их индексы - C++
Не знаю как сделать. Нужно сформировать одномерный массив с 35 четырехзначных нечетных цифр. В массиве не должно быть одинаковых...

Подсчитать в массиве среднее арифметическое всех элементов, найти макси мальный max и минимальный min элементы массива. - C++
Вопрос в следующем. Нужно написать программу на С++ вот задание: Создать массив a1, a2, ..., an из n случайных чисел в пределах от 0...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru