Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 268
#1

Опять у меня к Вам вопрос

16.06.2011, 20:09. Просмотров 1341. Ответов 39
Метки нет (Все метки)

Дана матрица 3 на 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
#include <stdio.h>
main()
{ int a[3][4], i, j, min, max, t, k, n, l, r;
printf (" \n vvesti matricu: \n ");
for(i=1;i<=3;i++){
for(j=1;j<=4;j++)
scanf(" %d ", &a[i][j]);}
max=a[1][1];
 
{m1: if (max < a[i][j])
{max=a[i][j];k=i;n=j;}
i++;
if (i<=3) goto m1;
i=1; j++;
if (j<=4)goto m1;}
 
min=a[i][j];
{m2: if (min > a[i][j])
{min=a[i][j]; l=i; r=j;}
 
 
i++;
if (i<=3) goto m2;
i=1; j++;
if (j<=4)goto m2;}
 
t=a[k][n];
a[k][n]=a[l][r];
a[l][r]=t;
 
printf (" new matrica \n");
for(i=1;i<=3;i++){
for(j=1;j<=4;j++)
printf (" %d ", a[i][j]);
printf (" \n ");}
return getch();}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2011, 20:09
Ответы с готовыми решениями:

У меня вопрос
Почему прога не вычисляет максимальный и минимальный элемент в матрице? Пишет...

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

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

Составить программу которая при введеном количестве лет выдает сообщени вам n лет,вам n год или года
Составить программу которая при введеном количестве лет выдает сообщение вам n...

Тяжело ли Вам программировать на C++?
Тяжело ли Вам программировать на с++?:rofl:

39
Nursik77
16.06.2011, 20:28     Опять у меня к Вам вопрос
  #21

Не по теме:

Цитата Сообщение от Rikk Посмотреть сообщение
Нас молодая преподша учит, вот что знает она нам дала, а остальное вот делаю или сам, или по нету информацию ищу
Понимаю, а наша так вообще задаст уйму и ничего не обьясняет, бывало спросишь че-нить а она над этим сидит до конца урока, потом уходишь порожняком. Сейчас вспомню про те задачки, смехота:D

0
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 268
16.06.2011, 20:38  [ТС] #22
Цитата Сообщение от grizlik78 Посмотреть сообщение
о это явно не твой случай
а за место гото тогда что использовать?
Я вот этого не знаю, а так остальное сделал

Добавлено через 1 минуту
Цитата Сообщение от Nursik77 Посмотреть сообщение
Понимаю, а наша так вообще задаст уйму и ничего не обьясняет, бывало спросишь че-нить а она над этим сидит до конца урока, потом уходишь порожняком. Сейчас вспомню про те задачки, смехота
Вот вот, такое же у нас
0
grizlik78
Эксперт С++
1983 / 1476 / 191
Регистрация: 29.05.2011
Сообщений: 3,050
16.06.2011, 20:44 #23
Цитата Сообщение от Rikk Посмотреть сообщение
а за место гото тогда что использовать?
Я вот этого не знаю, а так остальное сделал
Ну так ты же циклы ими организовывал. Вот циклами настоящими и надо пользоваться. Типа такого
C
1
2
3
4
5
6
7
8
for (i=0; i<3; i++)
{
    printf("i = %d\n", i);
    for (j=0; j<4; j++)
    {
        printf(" j = %d\n", j);
    }
}
1
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 268
16.06.2011, 20:59  [ТС] #24
Цитата Сообщение от grizlik78 Посмотреть сообщение
Типа такого
Ничего себе, даже так можно

Добавлено через 12 минут
А вот так вот? Правда не пашет
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
#include <stdio.h>
main()
{ int a[3][4], i, j, min, max, t, k, n, l, r;
       // Vvod massiva
       printf (" \n vvesti matricu: \n ");
       for(i=0;i<3;i++){
            for(j=0;j<4;j++)
       scanf(" %d ", &a[i][j]);}
      // Reshenie
       
               
            max=a[0][0];
 
           {for (i=0; i<3; i++)
{
    printf("i = %d\n", i);
    for (j=0; j<4; j++)
    {
        printf(" j = %d\n", j);
    }
}
          if (max < a[i][j])
       {max=a[i][j];k=i;n=j;    }
                                    }
       i++;
            if (i<=3)
            i=1; j++;
                         if (j<=4)
 
                         min=a[i][j];
           {for (i=0; i<3; i++)
 
    printf("i = %d\n", i);
    for (j=0; j<4; j++)
    {
        printf(" j = %d\n", j);
    }
}    
           if (min > a[i][j])
           {min=a[i][j]; l=i; r=j;     }
 
 
           i++;
           if (i<=3) 
           i=1; j++;
           if (j<=4)
 
           t=a[k][n];
           a[k][n]=a[l][r];
              a[l][r]=t;
         // Vyvod
           printf (" new matrica \n");
            for(i=0;i<3;i++){
              for(j=0;j<4;j++)
               printf (" %d ", a[i][j]);
                 printf (" \n ");}
           return getch();}
0
grizlik78
Эксперт С++
1983 / 1476 / 191
Регистрация: 29.05.2011
Сообщений: 3,050
16.06.2011, 21:07 #25
Спокойно, спокойно! printf у меня просто для примера тела цикла. Вот во внутреннем цикле вместо printf (или вместе с ним, если хочется индексы в работе посмотреть) должны быть твои проверки. Внутри цикла, а не после.
Вот первый printf, там доступна только переменная i и она увеличивается от 0 до 2.
Внутри второго цикла, где второй printf, там доступны обе переменные, i и j. Но j меняется часто, а i только когда внутренний цикл заканчивается. При этом j снова с нуля и до 3 изменяется.
0
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 268
16.06.2011, 21:32  [ТС] #26
Цитата Сообщение от grizlik78 Посмотреть сообщение
Спокойно, спокойно!
а я то думал...

Добавлено через 18 минут
Блин что то не получается прога
0
grizlik78
Эксперт С++
1983 / 1476 / 191
Регистрация: 29.05.2011
Сообщений: 3,050
16.06.2011, 21:44 #27
Странно. Идея-то правильная была. С реализацией вот не очень. Новая версия есть какая-нибудь?
0
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 268
16.06.2011, 21:48  [ТС] #28
Цитата Сообщение от grizlik78 Посмотреть сообщение
Новая версия есть какая-нибудь?
Да вот думаю
0
grizlik78
Эксперт С++
1983 / 1476 / 191
Регистрация: 29.05.2011
Сообщений: 3,050
16.06.2011, 21:51 #29
Ну вот в последнем коде строки 25—39 и 43—46 не нужны. Строки 22, 23, 39, 40 засунуть во внутренний цикл. Ну а дальше по обстоятельствам.
0
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 268
16.06.2011, 22:02  [ТС] #30
Как то вот так вот получилось
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
#include <stdio.h>
main()
{ int a[3][4], i, j, min, max, t, k, n, l, r;
       // Vvod massiva
       printf (" \n vvesti matricu: \n ");
       for(i=0;i<3;i++){
            for(j=0;j<4;j++)
       scanf(" %d ", &a[i][j]);}
      // Reshenie
       
               
            max=a[0][0];
 
           {for (i=0; i<3; i++)
{
    printf("i = %d\n", i);
    for (j=0; j<4; j++)
    
        printf(" j = %d\n", j);
    
}
          if (max < a[i][j])
           {max=a[i][j];k=i;n=j;}    
                                        
           if (min > a[i][j])
           {min=a[i][j]; l=i; r=j;     }
 
 
           
 
           t=a[k][n];
           a[k][n]=a[l][r];
              a[l][r]=t;
             // Vyvod
           printf (" new matrica \n");
            for(i=0;i<3;i++){
              for(j=0;j<4;j++)
               printf (" %d ", a[i][j]);
                 printf (" \n ");}
               return getch();}}
Добавлено через 2 минуты
16 и 19 строки не нужны в принципе
0
grizlik78
Эксперт С++
1983 / 1476 / 191
Регистрация: 29.05.2011
Сообщений: 3,050
16.06.2011, 22:04 #31
Похоже, но не заметно, чтобы условия оказались внутри вложенного цикла. Сейчас там printf (строка 19). А ещё начальное значение минимума не задано, а должно быть. Можно как и у максимума.
0
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 268
16.06.2011, 22:10  [ТС] #32
Почти верно работает, только происходит почему то тока замена последнего элемента в первой строке
и первого элемента во второй
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
#include <stdio.h>
main()
{ int a[3][4], i, j, min, max, t, k, n, l, r;
       // Vvod massiva
       printf (" \n vvesti matricu: \n ");
       for(i=0;i<3;i++){
            for(j=0;j<4;j++)
       scanf(" %d ", &a[i][j]);}
      // Reshenie
       
            min=a[0][0];   
            max=a[0][0];
 
           for (i=0; i<3; i++)
{
   
    for (j=0; j<4; j++)
    
        
    
 
          {if (max < a[i][j])
           max=a[i][j];k=i;n=j;}    
                                        
          { if (min > a[i][j])
       min=a[i][j]; l=i; r=j;     }
 
 
           
 
           t=a[k][n];
           a[k][n]=a[l][r];
              a[l][r]=t;
             // Vyvod
           printf (" new matrica \n");
            for(i=0;i<3;i++){
              for(j=0;j<4;j++)
               printf (" %d ", a[i][j]);
                 printf (" \n ");}
           return getch();}}
0
grizlik78
Эксперт С++
1983 / 1476 / 191
Регистрация: 29.05.2011
Сообщений: 3,050
16.06.2011, 22:14 #33
тестовую матрицу покажи.

Добавлено через 1 минуту
И ещё. У меня во вложенном цикле были скобки. Ты их убрал, теперь страдаешь

Добавлено через 1 минуту
И вообще беда со скобками. Ладно, сейчас сам поправлю.
1
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 268
16.06.2011, 22:15  [ТС] #34
угу знаю что беда
0
grizlik78
Эксперт С++
1983 / 1476 / 191
Регистрация: 29.05.2011
Сообщений: 3,050
16.06.2011, 22:21 #35
Как-то так. Только оно, кажется, не очень соответствует заданию
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
#include <stdio.h>
 
main()
{
    int a[3][4], i, j, min, max, t, k, n, l, r;
    // Vvod massiva
    printf (" \n vvesti matricu: \n ");
    for(i=0;i<3;i++)
        for(j=0;j<4;j++)
            scanf("%d", &a[i][j]);
 
    // Reshenie
 
    min=a[0][0];   
    max=a[0][0];
 
    for (i=0; i<3; i++)
    {
        for (j=0; j<4; j++)
        {
            if (max < a[i][j])
            {
                max=a[i][j];
                k=i;
                n=j;
            }    
            if (min > a[i][j])
            {
                min=a[i][j];
                l=i;
                r=j;
            }
        }
    }
 
    t=a[k][n];
    a[k][n]=a[l][r];
    a[l][r]=t;
    // Vyvod
    printf (" new matrica \n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
            printf (" %d ", a[i][j]);
        printf (" \n ");
    }
 
    getch();
    return 0;
}
1
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 268
16.06.2011, 22:24  [ТС] #36
Цитата Сообщение от grizlik78 Посмотреть сообщение
Работает
Да ладно работает? Правильно выводит???
0
grizlik78
Эксперт С++
1983 / 1476 / 191
Регистрация: 29.05.2011
Сообщений: 3,050
16.06.2011, 22:26 #37
Проверяй. То сообщение — это сбой в программе был Нет больше его.
0
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 268
17.06.2011, 13:07  [ТС] #38
Цитата Сообщение от grizlik78 Посмотреть сообщение
Нет больше его

фига се
ща буду проверять

Добавлено через 14 часов 36 минут
Усё работает замечательно!
Всем большое спасибо!!!
0
Nursik77
273 / 233 / 30
Регистрация: 05.04.2011
Сообщений: 645
17.06.2011, 13:10 #39
Rikk, а собсна чем решение grizlik78-а отличается от моего? все равно пришел к нему, из ентого следует что ты зря потратил время. В следующий раз не затевай не нужных идей
1
Rikk
45 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 268
17.06.2011, 13:13  [ТС] #40
Даа там в твоём решении просто есть функции которые мы не прохадили, вот на всякий случай будет так 2 решения
1
17.06.2011, 13:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2011, 13:13

Как вам моя идея?
Собираюсь делать какую нибудь программу. Вот идея такая(программа для нас...

Как вам такая это?
Известны циклические двусвязные списки. А если закольцеваь ортогонально по двум...

Ребята большая просьба к вам
Может знает кто с помощью чего можно открыть файл формата .may ?


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

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

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