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

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

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

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

25.12.2008, 20:34. Просмотров 973. Ответов 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");
 
  }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2008, 20:34     Заменить case на вызов функций
Посмотрите здесь:

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

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

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

Как заменить содержимое case на функции пользователя? - C++
Написал программу для работы с одномерным массивом в котором реализован интерфейс пользователя, а теперь необходимо в разделе...

Затраты на вызов функций - C++
Тратится ли время и вообще &quot;средства&quot; компьютера на вызов функций? И если да то почему бы не писать программы сплошным текстом(как бы...

Определение и вызов функций - C++
2. Определить функции, переводящую число в двоичную систему счисления и проверяющую, является ли двоичная запись числа симметричной...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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