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

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

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

Заменить case на вызов функций - C++

25.12.2008, 20:34. Просмотров 986. Ответов 0
Метки нет (Все метки)

вот код программы,работает..а как переделать?
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
int main ()
   {
      int **x,**y,p,fl1,i,j,d,n,m,v,fl,k,g,e;
      char c;                                                                                                                                                                                                                                                     
      v=0;
      fl=0;
      do
      {
      puts("1-Vvod massiva");
      puts("2-Vjvod ischodnogo massiva");
      puts("3-Formirovanie novoi matricj iz stolbcov, ne imejushimi odinakovuh elementov");
      puts("4-Vjvod novoi matricj");
      puts("0-Vjchod");
      scanf("%d",&c);
      switch (c)
         {
            case 1:if(x!=NULL)
                     for (i=0;i<n;i++)
                         free(*(x+n));
                   free(x);
               puts("Ischodnji massiv:");
                    do
                       {
                        printf("kollichestvo strok\n");
                        scanf("%d",&n);
                        if(n<1||n>100)
                           printf("\n Oshibka!!!");
                       }
                    while(n<1||n>100);
                    do
                       {
                        printf("kollichestvo stolbcov\n");
                        scanf("%d",&m);
                        if(m<1||m>100)
                           printf("\n Oshibka!!!");
                       }
                    while(m<1||m>100);
                    x=(int**)malloc(n*sizeof(int*));
                    for(i=0;i<n;i++)
                      *(x+i)=(int*)malloc(m*sizeof(int));
                    puts("\n Vvedite massiv");
                    for(i=0;i<n;i++)
                       for(j=0;j<m;j++)
                          {
                          printf("Vvedite x[%d][%d]=",i,j);
                          scanf("%d",(*(x+i)+j));
                          }
                    fl=1;
                    fl1=0;
                    break;
            case 2: if(fl)
                      {
                        puts("\n Vvedennji massiv");
                        for(i=0;i<n;i++)
                           {
                              for(j=0;j<m;j++)
                                  printf("x[%d][%d]=%3d   ",i,j,*(*(x+i)+j));
                                  printf("\n");
                           }
                      }
                    else
                       printf("\n Vj ne vveli massiv\n");
                    puts("Dlja prodolgenija nagmite Enter");
                    getch();
                    break;
            case 3: if(fl)
                        {
                            y=(int**)malloc(n*sizeof(int*));
                            for(g=j=0;j<m;j++)
                               {
                                  k=0;
                                  for(i=0;i<n-1 && k==0;i++)
                                      for(e=i;e<n-1 && k==0;e++)
                                          if (*(*(x+i)+j)==*(*(x+e+1)+j))
                                              k++;
                                  if(k==0)
                                     {
                                          for(i=0;i<n;i++)
                                              {
                                              *(y+i)=(int*)realloc(*(y+i),(g+1)*sizeof(int));
                                              *(*(y+i)+g)=*(*(x+i)+j);
                                              }
                                          g++;
                                     }
                               }
 
                        fl1=1;
                        printf("Dlja poluchenija rezul'tata sdelajte punkt 4\n");
                        }
                    else
                        printf("\n Vj ne vveli massiv\n");
                    puts("Dlja prodolgenija nagmite Enter");
                    getch();
                    break;
            case 4: if(fl)
                     {
                      if(fl1)
                       {
                         if(g>0)
                          {
                             printf("Poluchennaja matrica:\n");
                             for(i=0;i<n;i++)
                                {
                                   for(j=0;j<g;j++)
                                       printf("%4d   ",*(*(y+i)+j));
                                   printf("\n");
                                }
                          }
                       else
                          printf("V dannoj matrice net takich stolbcov\n");
                       }
                      else
                        printf("Snachala obratites' k punktu 3\n");
                     }
                    else
                        printf("\n Vj ne vveli massiv\n");
                    puts("Dlja prodolgenija nagmite Enter");
                    getch();
                    break;
            case 0: v=1;
                     if(x!=NULL)
                       {
                        for(i=0;i<n;i++)
                            free(*(x+i));
                        }
                     free(x);
                     if(y!=NULL)
                       {
                        for(i=0;i<n;i++)
                            free(*(y+i));
                       }
                     free(y);
                    break;
            default: printf("\n Nevernji vjbor punkta menu!!!\n");
         }
      }
      while(v==0);
      printf("Reshenie zaversheno");
 
  }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2008, 20:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заменить case на вызов функций (C++):

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h - C++
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных. ...

Передача значений функций в главную программу, вызов функций - C++
Здравствуйте! Скорее всего, неправильно передаю значения функциям и в главную программу. Помогите найти ошибку! В итоге выводит...

Вызов функций внутри других функций - C++
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; using namespace std; ...

Вызов функции, рисующей квадрат с соответствующими сторонами при переходе по case 2 - C++
Решил наворотить свою главную функцию что бы она рисовала квадрат с соответствующими сторонами при переходе по case 2. Выписал функцию как...

Чем можно заменить Switch -- case ? - C++
Доброго времени суток, уважаемые форумчане! Помогите решить проблему с case. В этой программе нужно создать множественный выбор, который...

Вызов функций - C++
Можно ли преобразовать строку, вводимою с консоли в вызов функции? То есть к примеру у меня предопределено несколько функций. С консоли...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2008, 20:34
Привет! Вот еще темы с ответами:

Вызов функций - C++
Можно ли программно вызвать все функции записанные в файле?

Вызов функций - C++
Всем привет! Слушайте, в проге которую я сейчас пишу несколько функций, и мне нужно по ходу работы программы вызывать другие функции. Из...

Вызов функций - C++
Для чего нужны stdcall и cdecl? и как они работают? Спасибо=)

Вызов функций - C++
В одномерном массиве, состоящем из п целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов...


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

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

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