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

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

Войти
Регистрация
Восстановить пароль
 
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
#1

Множественный выбор. - C++

10.03.2011, 22:12. Просмотров 516. Ответов 2
Метки нет (Все метки)

У меня есть задание См. Рисунок. задание не тяжёлое я его сделал , но захотел проверить как всё работает. Что бы ввести асе года сразу я сделал одномерный массив в котором можно перебрать цифпы от 1-99. Программа заработало но пожемуто ко фсем значениям выполняется второй случай из оператора 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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <iostream>
void my_func(int i,int n,unsigned int *mas,int j);
int main(void)
{
    int i,n,j;
    scanf("%d",&n);
    unsigned int *mas;
    mas=new unsigned int [n];
    for(j=0;j<n;j++)
    {
       mas[j]=j+1;
       if(mas[j]==1||mas[j]==21||mas[j]==31||mas[j]==41||mas[j]==51||mas[j]==61||mas[j]==71||mas[j]==81||mas[j]==91)
       { 
        i=3;
       }
       else
       {
        if(mas[j]>=2||mas[j]>+22||mas[j]>=32||mas[j]>=42||mas[j]>=52||mas[j]>=62||mas[j]>=72||mas[j]>=82||mas[j]>=92)
        {
            i=2;
        }
        else
        {
            if(mas[j]>=5||mas[j]>=25||mas[j]>=35||mas[j]>=45||mas[j]>=55||mas[j]>=65||mas[j]>=75||mas[j]>=95||mas[j]>=85)
            {
                i=1;
            }
        }
       }
    }
    my_func(i,n,mas,j);
    return 0;
 
}
void my_func(int i,int n,unsigned int *mas,int j)
{
    switch(i)
    {     
         case 1:
             for(j=0;j<n;j++)
             {
             printf("Mne %d let\n",mas[j]);
             }
             break;
         case 2:
             for(j=0;j<n;j++)
             {
             printf("Mne %d goda\n",mas[j]);
             }
             break;
         case 3:
             for(j=0;j<n;j++)
             {
             printf("Mne %d god\n",mas[j]);
             }
             break;
         default:
             printf("Eror\n");
             break;
    }
    
}
Миниатюры
Множественный выбор.  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2011, 22:12     Множественный выбор.
Посмотрите здесь:

множественный выбор - C++
Добрый день, ув. форумчани. Не подскажите как с помощью оператора switch сделать множественный выбор, то есть я что-то выбрал и мне снова...

Множественный выбор - C++
Доброго времени суток. Программа запускается, но когда вводишь символ - процедуры пролетают все разом. Т.е. операторы ввода в процедурах...

Множественный выбор (switch) - C++
Вводим номер месяца M и дня D. Определить порядковый номер дня в году T соответствующий этой дате.

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

Устранить множественный вывод символа 'м' - C++
считываю из файла данные в массив s затем через for хочу считать массив, что бы в отдельной переменной задать значение цены. но при...

Множественный выбор - 1С
Здравствуйте, есть справочник там много записей удалять и перемещать по одному это хоть весь день сиди. Читал, что галочку в...

1C 7.x Множественный выбор - 1С
Подскажите как реализовать множественный выбор или как правильно сделать.Нужно чтобы в поле табчасти документа выбирать несколько...

Множественный выбор - PascalABC.NET
Написать программу, которая по номеру дня недели - целому числу от 1 до 7 будет выдавать в качестве результата количество уроков в классе в...

Множественный выбор - MS Access
Здравствуйте, подскажите возможно ли проделать такую операцию: в таблице excel имеется поле, где записаны данные например - &quot;Иванов,...

Множественный выбор radioButton - C# WPF
На одной форме находится 6 radiobutton. Но выбрать можно только одну radiobutton на всю форму. Как сделать чтобы можно было выбрать более...

Множественный выбор в ComboBox - C++ Builder
Уважаемые мастера подскажите каким образом можно сделать множественный выбор в Комбобоксе я проверил Borland C++ Builder VCL и Windows SDK...

Множественный выбор в DBGridEh - Delphi БД
Здравствуйте. Возникла проблема необходимо в DBGridEh выделить несколько строк и вывести их в StringGrid1 (ну или посоветуйте получше...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
11.03.2011, 09:34     Множественный выбор. #2
Не нужен тут switch.

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
#include <stdio.h>
#include <stdlib.h>
 
int NumberCase(int number) {
  int tens = abs(number) % 100;
  if (tens > 10 && tens < 15)
    return 0; // лет
  int units = tens % 10;
  if (units == 1)
    return 1;
  if (units > 1 && units < 5)
    return 2;
  return 0;
}
 
int main(int argc, char *argv[]) {
  char *units[] = {"лет", "год", "года"};
 
  int i;
  for (i = 0; i < 99; ++i)
    printf("Мне %d %s.\n", i, units[NumberCase(i)]);
 
  return 0;
}
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
11.03.2011, 20:56  [ТС]     Множественный выбор. #3
Спасибо .

Добавлено через 4 часа 24 минуты
Вот мне нужно с if и switch Что мне нужно вписать в if
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <iostream>
void my_func(int i,int v);
int main(void)
{
    int i,v;
    scanf("%d",&v);
    if()\\вот сдесь
    { 
        i=2;
    }
    else
    {
        i=3;
    }
    my_func( i,v);
    return 0;
 
}
void my_func(int i,int v)
{
    switch(i)
    {     
         case 1:
             printf("Mne %d let\n",v);
             break;
         case 2:
             printf("Mne %d goda\n",v);
             break;
         case 3:
             printf("Mne %d god\n",v);
             break;
         default:
             printf("Eror\n");
             break;
    }
    
}
Добавлено через 41 минуту
Вот что я хотел сделать
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <iostream>
void my_func(int i,int v);
int main(void)
{
    int i,v,j;
    unsigned int *A;
    A=new unsigned int [j];
    for(j=0;j<99;j++)
    {
        A[j]=j+1;
        
    }
    for(j=0;j<99;j++)
    {
        v=A[j];
    if(v==1||v==21||v==31||v==41||v==51||v==61||v==71||v==81||v==91)    
    { 
        i=3;
    }
    else
    {
        
        if(v>=5&&v<=20||v>=25&&v<=30||v>=35&&v<=40||v>=45&&v<=50||v>=55&&v<=60||v>=65&&v<=70||v>=75&&v<=80||v>=85&&v<=90||v>=95&&v<=99)
        {
            i=1;
        }
        else
        {
            i=2;
        }
 
    }
    my_func( i,v);
    }
    
    return 0;
 
}
void my_func(int i,int v)
{
    switch(i)
    {     
         case 1:
             printf("Mne %d let\n",v);
             break;
         case 2:
             printf("Mne %d goda\n",v);
             break;
         case 3:
             printf("Mne %d god\n",v);
             break;
         default:
             printf("Eror\n");
             break;
    }
    
}
Разобрался
Ответ Создать тему
Опции темы

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