45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 269
1

У меня вопрос

15.06.2011, 15:14. Показов 798. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Почему прога не вычисляет максимальный и минимальный элемент в матрице? Пишет не так
Код вроде бы верен, а толку от этого нет
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
#include<stdio.h>
#include<conio.h>
int main()
{
int a[4][5], k, l, i, j, min, max;
printf("\nvvedy matrycu a: \n");
for(i=1; i<=3; i++)
for(j=1; j<=4; j++)
scanf("%d", &a[i][j]);
for(i=1; i<=3; i++)
{
min=max=a[i][l];
for(j=1; j<=4; j++)
{
if(a[i][j]<=min)
{
min=a[i][j];
k=j;
}
if(a[i][j]>=max)
{
max=a[i][j];
l=j;
}
}
a[i][k]=max;
a[i][l]=min;
}
printf("\n vyvod matcycy:\n");
for(i=1; i<=3; i++)
{
for(j=1; j<=4; j++)
printf("%d", a[i][j]);
printf("\n");
}
return getch();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2011, 15:14
Ответы с готовыми решениями:

Опять у меня к Вам вопрос
Дана матрица 3 на 4 поменять во всей матрице максимальный и минимальный элемент Я тут свой код...

Дайте ссылку или пример на интересующий меня вопрос.
//Мне нужно сохранить информацию в массив структур FRAGMENT. //Сруктура выглит так: struct ...

У меня вопрос по классам. На приложенных картинках я выделил непонятные строки.
У меня вопрос по классам. На приложенных картинках я выделил непонятные строки. Строка 9....

У меня вопрос
Всем привет!!! У меня есть один вопрос.Взял пример с книги: double a=5, b=4, c=6, d, eps=1e-8;...

19
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
15.06.2011, 15:21 2
вобще-то индексы в массивах идут с 0
у вас во всех циклах начало со второго элемента (1).
0
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 269
15.06.2011, 15:23  [ТС] 3
Да не эт не важно, т.к. там приравнивается. Даже если исправить результата нету нужного, уже пробывал
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
15.06.2011, 15:25 4
C++
1
2
3
for(i=1; i<=3; i++)
{
min=max=a[i][l];
бред!
максимальный и минимальный нельзя инициировать внутри цикла.

перед циклом делай
max = a[0][0];
min = a[0][0];
а вот потом уже циклы и проверка

Добавлено через 2 минуты
и какая разница приравнивается или нет. у тебя тупо пропускается первый столбец
0
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 269
15.06.2011, 15:29  [ТС] 5
Цитата Сообщение от co6ak Посмотреть сообщение
и какая разница приравнивается или нет. у тебя тупо пропускается первый столбец
Ща приравняю к 0 и сделаю как Вы сказали, надеюсь заработает
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
15.06.2011, 15:29 6
вобщем хрень какая-та.

C++
1
2
3
4
5
6
7
8
int max=a[0][0];
int min=a[0][0];
for (int i=0; i < 4; i++)
for (int j=0; j < 5; j++)
{
if ( a[i][j] > max ) max = a[i][j];
if ( a[i][j] < min ) min = a[i][j];
}
0
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 269
15.06.2011, 15:30  [ТС] 7
Цитата Сообщение от co6ak Посмотреть сообщение
int max=a[0][0];
int min=a[0][0];
for (int i=0; i < 4; i++)
for (int j=0; j < 5; j++)
{
if ( a[i][j] > max ) max = a[i][j];
if ( a[i][j] < min ) min = a[i][j];
}
т.е. это мне перед циклом писать?
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
15.06.2011, 15:36 8
это вместо своего цикла.
и потом выводить максимальные и минимальные эл-ты.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int max=a[0][0];
int min=a[0][0];
for (int i=0; i < 4; i++)
for (int j=0; j < 5; j++)
{
if ( a[i][j] > max ) max = a[i][j];
if ( a[i][j] < min ) min = a[i][j];
}
printf("Max = %d", max);
printf("Min = %d", min);
 
for (int i = 0; i < 4; i++){
for (int j = 0; j < 5; j++)
printf("%d ", a[i][j]);
printf();
}
1
В вечном поиске...
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
15.06.2011, 15:38 9
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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main()
{int a[3][3];
int i,j;
float min=0,max=0;
clrscr();//можно убрать
randomize();
printf("Random matrix:\n\n");
for(i=0;i<3;i++)
 {for(j=0;j<3;j++)
  {a[i][j]=rand()%100-50;
   printf(" %4i",a[i][j]);
  }
 printf("\n\n");
 }
for(i=0;i<3;i++)
 {for(j=0;j<3;j++)
   {if(a[i][j]>max)
    max=a[i][j];
    }
 }
printf("Max=%2.0f ",max);
for(i=0;i<3;i++)
 {for(j=0;j<3;j++)
   {if(a[i][j]<min)
    min=a[i][j];
    }
 }
printf(" Min=%2.0f ",min);
getch();
}
1
166 / 164 / 27
Регистрация: 20.04.2010
Сообщений: 607
15.06.2011, 15:40 10
Nursik77, несколько раз пробегаешь массив. думаю не стоит этого делать.)
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
15.06.2011, 15:42 11
Nursik77, а почему минимум и максимум float? )) массив то интовский
0
В вечном поиске...
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
15.06.2011, 15:46 12
co6ak, да я енто давно делал, када исчо знакомился с си. Усе равно меняется легко
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
15.06.2011, 15:48 13
ну многим тут понятно что легко.
но судя по коду ТСа - это не тот случай.

особенно будоражит сейчас строки 26 и 27. у меня фантазии не хватает, что бы определить зачем это там
0
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 269
15.06.2011, 15:49  [ТС] 14
Цитата Сообщение от co6ak Посмотреть сообщение
особенно будоражит сейчас строки 26 и 27. у меня фантазии не хватает, что бы определить зачем это там
Нас препод так учил, и такая у нас методичка, так что как грится чем богаты
0
В вечном поиске...
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
15.06.2011, 15:57 15
Цитата Сообщение от Rikk Посмотреть сообщение
Нас препод так учил, и такая у нас методичка, так что как грится чем богаты
Интересные у вас преподы
Давайте сделаем так и усе:
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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main()
{int a[3][3];
int i,j,min=0,max=0;
randomize();
printf("Random matrix:\n\n");
for(i=0;i<3;i++)
 {for(j=0;j<3;j++)
  {a[i][j]=rand()%100-50;
   printf(" %4i",a[i][j]);
  }
 printf("\n\n");
 }
for(i=0;i<3;i++)
 {for(j=0;j<3;j++)
   {if(a[i][j]>max)
    max=a[i][j];
    else if(a[i][j]<min)
    min=a[i][j];
    }
 }
printf("Max=%2i ",max);
printf(" Min=%2i ",min);
getch();
}
Добавлено через 1 минуту
Если на randomize(); компилятор будет ругаться, убери.
1
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 269
15.06.2011, 16:13  [ТС] 16
Цитата Сообщение от Nursik77 Посмотреть сообщение
Если на randomize(); компилятор будет ругаться, убери.
не не ругается спасибо
но есть такая просьба, по условию он должен менять мин и макс
Цитата Сообщение от Nursik77 Посмотреть сообщение
Интересные у вас преподы
угу такие, таки хотят деньгу состричь

Добавлено через 4 минуты
Вот так верно?
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
#include <stdio.h>
#include <conio.h>
main() {
        int a[3][4], min, max, i, j, k=0, l=0;
 
        
        printf("Vvedite a[3][4]: ");
        for(i=0;i<3;i++) {
                for(j=0;j<4;j++) scanf("%d",&a[i][j]);
        }
 
        
        for(i=0;i<3;i++) {
                printf("\n");
                for(j=0;j<4;j++) printf("[%d] ",a[i][j]);
        }
 
        
        for(i=0;i<3;i++) {
                min=a[i][0];
                max=a[i][0];
                for(j=0;j<4;j++) {
                        if(min>a[i][j]) { min=a[i][j]; k=j; }
                        if(max<a[i][j]) { max=a[i][j]; l=j; }
                }
        a[i][k]=max; k=0;
        a[i][l]=min; l=0;
        }
 
 
        printf("\nOtvet:\n");
        for(i=0;i<3;i++) {
                printf("\n");
        for(j=0;j<4;j++) printf("[%d] ",a[i][j]);
        }
 
        return getch();
}
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
15.06.2011, 16:20 17
ах вот оно что!
это объясняет наличие тех двух странных строк.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int imin = 0;
int imax = 0;
int jmin = 0;
int jmax = 0;
for (int i = 0; i < 3; i ++ )
for (int j = 0; j < 4; j++ ) 
{
if ( a[i][j] < a[imin][jmin] ) { imin = i; jmin = j; }
if ( a[i][j] > a[imax][jmax] ) { jmax = j; imax = i; } 
}
 
int tmp = a [imin][jmin];
a [imin][jmin] = a[imax][jmax];
a [imax][jmax] = tmp;
 
       printf("\nOtvet:\n");
        for(i=0;i<3;i++) {
                printf("\n");
                for(j=0;j<4;j++) printf("[%d] ",a[i][j]);
        }
 
        return getch();
Добавлено через 2 минуты
рикк, у тебя какая конкретно задача?
поменять местами максимум и минимум в каждый строке?
0
В вечном поиске...
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
15.06.2011, 16:20 18
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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main()
{int a[3][3];
int i,j,min=0,max=0,pp;
int k,l,p,q;
clrscr();
randomize();
printf("Random matrix:\n\n");
for(i=0;i<3;i++)
 {for(j=0;j<3;j++)
  {a[i][j]=rand()%100-50;
   printf(" %4i",a[i][j]);
  }
 printf("\n\n");
 }
for(i=0;i<3;i++)
 {for(j=0;j<3;j++)
   {if(a[i][j]>max)
    {max=a[i][j];
    k=i;
    l=j;}
    else if(a[i][j]<min)
    {min=a[i][j];
    p=i;
    q=j;}
    }
 }
printf("Max=%2i ",max);
printf(" Min=%2i ",min);
printf("\n\nIzmenennaya matrica:\n\n");
for(i=0;i<3;i++)
 {for(j=0;j<3;j++)
  {pp=a[k][l];
   a[k][l]=a[p][q];
   a[p][q]=pp;}
 }
for(i=0;i<3;i++)
 {for(j=0;j<3;j++)
  {
   printf(" %4i",a[i][j]);
  }
 printf("\n\n");
 }
getch();
}
1
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 269
15.06.2011, 16:24  [ТС] 19
Цитата Сообщение от co6ak Посмотреть сообщение
у тебя какая конкретно задача?
в том то и дело что просто сказано поменять мин и макс

Добавлено через 33 секунды
Ого спасибочки Nursik77
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
15.06.2011, 16:25 20
ну вот всегда так )))
0
15.06.2011, 16:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2011, 16:25
Помогаю со студенческими работами здесь

У меня вопрос!
Я зашел в Bios, в раздел &quot;Frequency/Voltage Control и вот что там написано:...

У меня такой вопрос
В какой версии паскаля можно использовать русские буквы и при этом компилировать (переводить в exe)...

У меня вопрос по множествам!!!!
Составить программу для заполнения массива А размеров 3Х15 , целыми случайными числами в интервале...

Я новичек, у меня вопрос!
Привет всем! Уже второй день читаю этот форм. По-моему весь даже за месяц прочитать не получится,...

У меня возник маленький вопрос
У меня есть сайт я покупаю ссылки в sape.ru и вчера задался одним: Влияет ли Тиц площадки где я...

У меня вопрос по поводу редиректа
Вот код .htaccess RewriteEngine On Options +FollowSymlinks RewriteBase / RewriteCond...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru