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

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

Восстановить пароль Регистрация
 
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
10.03.2011, 22:12     Множественный выбор. #1
У меня есть задание См. Рисунок. задание не тяжёлое я его сделал , но захотел проверить как всё работает. Что бы ввести асе года сразу я сделал одномерный массив в котором можно перебрать цифпы от 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++
Выбор СИ++ C++
C++ Множественный выбор
C++ Использовать множественный выбор
C++ Выбор (y/n)
C++ Множественный выбор (switch)
C++ множественный выбор
C++ Выбор хранилища

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
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
 Аватар для 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;
    }
    
}
Разобрался
Yandex
Объявления
11.03.2011, 20:56     Множественный выбор.
Ответ Создать тему
Опции темы

Текущее время: 19:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru