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

Поменять местами наименьший и второй по величине элементы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обход произвольного дерева http://www.cyberforum.ru/cpp-beginners/thread39442.html
struct tree { char info; struct tree *left; struct tree *right; }; так, вопрос глупый -меня просто сомнения берут. вот смотрите, если обход бинарного дерева в симметричном порядке у нас функция процедура такая делает: void inorder(struct tree *root) {
C++ Поиск Вечер добрый. Подскажите максимально быстрый способ поиска, меня больше интересует не сама реализация а способ, так сказать или алгоритм.. Есть список ключ - значение. и ключ и значение строковые переменные. например 354321-фывалорфыдва 13-флыврадфыв 8735187351-флыврдафыв ... http://www.cyberforum.ru/cpp-beginners/thread39428.html
C++ Заполнить матрицу линейной последовательностью (0-81), от левого верхнего угла по диагонали: вправо - вверх
Помогите пожалуйста написать программу: Заполнить матрицу линейной последовательностью (1-81), от левого верхнего угла по диагонали: вправо - вверх? в соответствиb с рисунком http://s40.***********/i088/0906/78/08a04dbff187t.jpg
телефонный справочник C++
Создать телефонный справочник, т.е. файл из записей с полями: ФИО, адрес (запись из 3 полей : улица, номер дома, квартиры) и номер телефона. Найти номер АТС (первые 2 цифры номера телефона), имеющей наибольшее число абонентов. Отсортировать по фамилиям. у кого нить что нить подобное имеется???
C++ Помогите пжл новичку написать прогу http://www.cyberforum.ru/cpp-beginners/thread39422.html
Нужно найти общие слова в 2-х предложениях
C++ Е и е, + и - Вводится строка символов, в которой могут встречаться пробелы, цифр буквы 'E' и 'e', знаки '+' и '-'. Известно, что первый символ отличён от пробела. Из данной строки подстройку сиволов, предшедствующих первому ?пробелу. Требуется определить, является ли эта подстрока числом (в смысле Паскаля). Если да, то выяснить: целое или вещество. число, (+)-е или (-)-е. Помогите в С++ сделать ,... подробнее

Показать сообщение отдельно
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
11.06.2009, 00:54     Поменять местами наименьший и второй по величине элементы
Мда.... говорю же поменяй условие... у меня так все норм..:
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
 
void ReadMatrix(int Line, int Column, int** Matrix, FILE *FileIn)
{
        for (int i=0; i<Line; i++)
          for (int j=0; j<Column; j++)
            fscanf(FileIn,"%3d",&Matrix[i][j]);
}
 
void PrintMatrix(int Line, int Column, int** Matrix)
{
        for (int i=0; i<Line; i++)
        {
          for (int j=0; j<Column; j++)
            printf("%3d",Matrix[i][j]);
          printf("\n");
        }
}
 
void FindMinElement(int** Matrix, int Column, int NumStr, int &JMin)
{
        int Min;
        Min=Matrix[NumStr][0];
        JMin=0;
        for (int j=0; j<Column; j++)
          if (Matrix[NumStr][j]<Min)
          {
            Min=Matrix[NumStr][j];
            JMin=j;
          }
}
 
void FindFirstMaxElement(int** Matrix, int Column, int NumStr, int &JMax1)
{
        int Max;
        Max=Matrix[NumStr][0];
        JMax1=0;
        for (int j=0; j<Column; j++)
          if (Matrix[NumStr][j]>Max)
          {
            Max=Matrix[NumStr][j];
            JMax1=j;
          }
}
 
void FindSecondMaxElement(int** Matrix, int Column, int NumStr, int JMax1, int &JMax2)
{
        int Max;
        Max=-32000;
        JMax2=0;
        for (int j=0; j<Column; j++)
          if ((Matrix[NumStr][j]>Max) && (j!=JMax1))
          {
            Max=Matrix[NumStr][j];
            JMax2=j;
          }
}
 
void Bubble(int** Matrix, int NumStr, int JMin, int JMax2)
{
        int Buf;
        Buf=Matrix[NumStr][JMin];
        Matrix[NumStr][JMin]=Matrix[NumStr][JMax2];
        Matrix[NumStr][JMax2]=Buf;
}
 
void ChargeByPlacesMinAndSecondMaxElements(int** Matrix, int Line, int Column)
{
        int JMin,JMax1,JMax2;
        for (int i=0; i<Line; i++)
        {
          FindMinElement(Matrix,Column,i,JMin);
          FindFirstMaxElement(Matrix,Column,i,JMax1);
          FindSecondMaxElement(Matrix,Column,i,JMax1,JMax2);
          Bubble(Matrix,i,JMin,JMax2);
        }
}
 
void WriteMatrixToFile(int** Matrix, int Line, int Column, FILE *FileOut)
{
        for (int i=0; i<Line; i++)
        {
          for (int j=0; j<Column; j++)
            fprintf(FileOut,"%3d",Matrix[i][j]);
            fprintf(FileOut,"\n");
        }
}
 
void main()
{
        int** Matrix;
        int Line,Column,i;
        FILE *FileIn,*FileOut;
        char NameFileIn[30],NameFileOut[30];
        printf("Vxodnoi file ");
        scanf("%s",NameFileIn);
        printf("Output file ");
        scanf("%s",NameFileOut);
        FileIn=fopen(NameFileIn,"r");
        fscanf(FileIn,"%d",&Line);
        fscanf(FileIn,"%d",&Column);
        Matrix=(int**)malloc(Line*sizeof(int*));
        for (i=0; i<Column; i++)
          Matrix[i]=(int*)malloc(Column*sizeof(int*));
        printf("\nMatrix 1:\n");
        ReadMatrix(Line,Column,Matrix,FileIn);
        fclose(FileIn);
        PrintMatrix(Line,Column,Matrix);
        ChargeByPlacesMinAndSecondMaxElements(Matrix,Line,Column);
        printf("\nMatrix2:\n");
        PrintMatrix(Line,Column,Matrix);
        FileOut=fopen(NameFileOut,"w");
        WriteMatrixToFile(Matrix,Line,Column,FileOut);
        for (i=0; i<Line; i++)
          free(Matrix[i]);
        free(Matrix);
        fclose(FileOut);
        getch();
}
 
Текущее время: 21:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru