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

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

Войти
Регистрация
Восстановить пароль
 
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
#1

Создать управление программой - C++

11.03.2011, 22:06. Просмотров 567. Ответов 7
Метки нет (Все метки)

Нужно было сделать программу, чтобы она управлялась через switch-case
Вот что получилось:
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
 
 
 
int* vvod_s_klavi(int size);
int* vvod_s_f(int size);
int vivod(int a[], int size);
int num_more_c(int a[], int size);
int* ssort(int a[], int size);
int mult(int a[], int size);
 
int main(void)
{
    setlocale (LC_ALL, "Russian");
    int a[500];
    int size,i,b;
    do
{
    printf("Введите 1 - для ввода с клавиатуры\n");
    printf("Введите 2 - для ввода из файла\n");
    printf("Введите 3 - для вывода\n");
    printf("Введите 4 - для нахождения элементов больших C\n");
    printf("Введите 5 - для нахождения произведения\n");
    printf("Введите 6 - для сортировки\n");
    scanf("%d",&b);
    switch(b)
    {
    case 1:vvod_s_klavi(a,size); break;
    case 2:vvod_s_f(a,size); break;
    case 3:vivod(a,size); break;
    case 4:printf("\nКоличество элементов больших С=%d",num_more_c(a,size)); break;
    case 5:printf("\nПроизведение=%d",mult(a,size)); break;
    case 6:ssort(a,size);
        printf("\nОтсортированный массив");
     for(i=0; i<size; i++)
     {
         printf("%d ",a[i]);
     }break;
    }
 
 
} while(b!=0);
    printf("Введите количество элементов  n= \n");
    scanf("%d",&size);
    
    
    getch();
    return 0;
}
 
int vivod(int a[], int size)
{
    int i;
    printf("Массив:\n");
    for(i=0; i<size; i++)
    {
        printf("%d",a[i]);
    }
 
}
 
int* vvod_s_klavi(int a[],int size)
{
    int i;
    printf("Введите числа:\n");
    for(i=0; i<size; i++)
     {
         scanf("%d",&a[i]);
         printf("%d ",a[i]);
     }
    return a;
}
 
int* vvod_s_f(int a[],int size)
{
    int i;
    file*In;
    In=fopen("f1.txt","r");
    if(In)
        for(i=0; i<size; i++)
        {
            fscanf(In, "%d", &a[i]);
        }
        fclos(In);
        return a;
}
 
int num_more_c(int a[], int size)
{
    int num=0,i,c;
    printf("\nВведите С\n");
    scanf("%d",&c);
     for(i=0; i<size; i++)
     {
         if(a[i]>c)
         {
             num++;
         }
     }
    return num;
}
 
 
int* ssort(int a[], int size)
{
    int i,j,tmp;
     for(i=0; i<size; i++)
     {
         for(j=i; j<size; j++)
         {
             if(a[i]>a[j])
             {
                 tmp=a[i];
                 a[i]=a[j];
                 a[j]=tmp;
             }
         }
     }
    return a;
}
 
 
int mult(int a[], int size)
{
    int mult=1,i,mod_max=a[0],num_mod_max=0;
    for (i=0; i<size; i++)
      {
         if (abs(a[i])>=mod_max)
            {
               mod_max=abs(a[i]);
               num_mod_max=i;
            }
      }
    for (i=num_mod_max+1; i<size; i++)
      {
               mult*=a[i];
      }
     return mult;
}
Программа не работает, чуствую где то запарка в функциях и управлении с ними. Помогите исправить программу, но не переписать на свой лад!

Добавлено через 1 час 23 минуты
Помогите кто нить пожалуйста!

Добавлено через 1 час 24 минуты
Помогите завтра сдавать уже надо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2011, 22:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать управление программой (C++):

Голосовое управление программой - C++
Здравствуйте, я еще неопытный программист, но хочу попробовать сделать программу с голосовым управлением. На днях юзал гугл голосовой...

Создать меню для работы с программой заполнения массива, используя функции - C++
Реализовать программу меню: 1. Заполнить массив нулями 2. Заполнить массив с клавиатуры 3. Заполнить массив случайными числами ...

Создать меню для работы с программой заполнения массива, используя функции - C++
Реализовать программу меню: 1. Заполнить массив нулями 2. Заполнить массив с клавиатуры 3. Заполнить массив случайными числами ...

Создать меню для работы с программой заполнения массива, используя функции, указатели на сылки - C++
Реализовать программу меню: 1. Заполнить массив нулями 2. Заполнить массив с клавиатуры 3. Заполнить массив случайными числами ...

Создать меню для работы с программой заполнения массива, используя функции. код прилагается - C++
Реализовать программу меню: 1. Заполнить массив нулями 2. Заполнить массив с клавиатуры 3. Заполнить массив случайными числами ...

Записать программой #1 и прочитать программой #2 - C++
Всем привет! Столкнулся с проблемой: Программа #1 пишет в бинарник инфу, программа #2 читает этот бинарник и работает с получеными...

7
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
11.03.2011, 22:59 #2
C++
1
2
int* vvod_s_klavi(int a[],int size)
int* vvod_s_klavi(int size);
а чё это такое?

Добавлено через 1 минуту
на каком моменте не работает?

Добавлено через 4 минуты
C++
1
2
   printf("Введите количество элементов  n= \n");
    scanf("%d",&size);
а эти строки не должны стоять перед циклом?
0
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
11.03.2011, 23:03  [ТС] #3
Цитата Сообщение от nxnx Посмотреть сообщение
int* vvod_s_klavi(int a[],int size) int* vvod_s_klavi(int size);
Это функция ввода с клавиатуры. Разве она не такая как у меня должна быть?
А вот насчет строк незнаю у вас хотелось бы узнать!
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2011, 23:06 #4
Сеня 2007, у вас в прототипе функция принимает один параметр, а в реализации - два, что не правильно.
0
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
11.03.2011, 23:07 #5
Удали:
C++
1
2
3
4
5
6
int* vvod_s_klavi(int size);
int* vvod_s_f(int size);
int vivod(int a[], int size);
int num_more_c(int a[], int size);
int* ssort(int a[], int size);
int mult(int a[], int size);
Функцию main перемести в самый низ кода.
C
1
2
 printf("Введите количество элементов  n= \n");
    scanf("%d",&size);
Поставь после строки:
C
1
int size,i,b;
Проверь результат.
0
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
12.03.2011, 06:42  [ТС] #6
Теперь пишет не удается запустить программу из за того что она не найдена как решить эту проблему?

Добавлено через 7 часов 25 минут
Ну кто нить поможет?
0
Евгений М.
1036 / 977 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
12.03.2011, 06:58 #7
Цитата Сообщение от Сеня 2007 Посмотреть сообщение
она не найдена. как решить эту проблему
Найдите эту программу.
0
LaГushan
124 / 124 / 14
Регистрация: 12.03.2011
Сообщений: 227
12.03.2011, 11:01 #8
По крайней мере, теперь программа компилируется. Хотя конечно, такое дело надо переписывать
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
144
145
146
147
148
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
 
 
 
int* vvod_s_klavi(int a[],int size);
int* vvod_s_f(int a[],int size);
int vivod(int a[], int size);
int num_more_c(int a[], int size);
int* ssort(int a[], int size);
int mult(int a[], int size);
 
int main(void)
{
        setlocale (LC_ALL, "Russian");
    int a[500];
    int size,i,b;
        do
{
        printf("Введите 1 - для ввода с клавиатуры\n");
        printf("Введите 2 - для ввода из файла\n");
        printf("Введите 3 - для вывода\n");
        printf("Введите 4 - для нахождения элементов больших C\n");
        printf("Введите 5 - для нахождения произведения\n");
    printf("Введите 6 - для сортировки\n");
        scanf("%d",&b);
 
        printf("Введите количество элементов  n= \n");
    scanf("%d",&size);
 
        switch(b)
        {
        case 1:vvod_s_klavi(a,size); break;
        case 2:vvod_s_f(a,size); break;
        case 3:vivod(a,size); break;
        case 4:printf("\nКоличество элементов больших С=%d",num_more_c(a,size)); break;
        case 5:printf("\nПроизведение=%d",mult(a,size)); break;
        case 6:ssort(a,size);
                printf("\nОтсортированный массив");
     for(i=0; i<size; i++)
     {
         printf("%d ",a[i]);
     }break;
        }
 
 
} while(b!=0);
    printf("Введите количество элементов  n= \n");
    scanf("%d",&size);
        
    
    getch();
    return 0;
}
 
int vivod(int a[], int size)
{
        int i;
        printf("Массив:\n");
        for(i=0; i<size; i++)
        {
                printf("%d",a[i]);
        }
    return 0;
 
}
 
int* vvod_s_klavi(int a[],int size)
{
        int i;
        printf("Введите числа:\n");
        for(i=0; i<size; i++)
     {
         scanf("%d",&a[i]);
         printf("%d ",a[i]);
     }
        return a;
}
 
int* vvod_s_f(int a[],int size)
{
        int i;
        FILE*In;
        In=fopen("f1.txt","r");
        if(In)
                for(i=0; i<size; i++)
                {
                        fscanf(In, "%d", &a[i]);
                }
                fclose(In);
                fclose(In);
                return a;
}
 
int num_more_c(int a[], int size)
{
    int num=0,i,c;
    printf("\nВведите С\n");
    scanf("%d",&c);
     for(i=0; i<size; i++)
     {
         if(a[i]>c)
         {
             num++;
         }
     }
    return num;
}
 
 
int* ssort(int a[], int size)
{
    int i,j,tmp;
     for(i=0; i<size; i++)
     {
         for(j=i; j<size; j++)
         {
             if(a[i]>a[j])
             {
                 tmp=a[i];
                 a[i]=a[j];
                 a[j]=tmp;
             }
         }
     }
    return a;
}
 
 
int mult(int a[], int size)
{
    int mult=1,i,mod_max=a[0],num_mod_max=0;
    for (i=0; i<size; i++)
      {
         if (abs(a[i])>=mod_max)
            {
               mod_max=abs(a[i]);
               num_mod_max=i;
            }
      }
    for (i=num_mod_max+1; i<size; i++)
      {
               mult*=a[i];
      }
     return mult;
}
0
12.03.2011, 11:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2011, 11:01
Привет! Вот еще темы с ответами:

Реализовать алгоритм работы планировщика. Управление виртуальной памятью. Управление файловой системой - C++
Разработка программы менеджера памяти. Свопинг. Сегментная схема организации памяти. Управление виртуальной памятью. Глобальное и локальное...

Разбираюсь с программой - C++
Разбираюсь с программой, подскажите, пожалуйста, Что конкретно делает линия 10 в данной тест- программе? #include &lt;iostream&gt; 5....

Проблемы с программой - C++
Сегодня начал изучать С++ по книжке Джесс Либерти &quot;C++ за 21 день&quot; и при написании первой же программы при компиляции программа мне выдаёт...

Проблемы с программой - C++
Недавно попросил знакомого помочь с программой, он написал, скинул но комментариев не оставил... курсовую нужно сдать завтра... Извините за...


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

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

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