C/C++

Помогите с задачей в main c++

С клавиатуры вводится два целых числа, обозначающих возраст человека.Составить программу, которая в зависимости от введенных данных определяет принадлежность человека к определенной группе: от 0 до 13 – мальчик; от 14 до 20 – юноша ; от 21 до 70 – мужчина ; более 70 – старец.
switch printf scanf
#include <stdio.h>

int main()
{
for(int x = 0; x < 2; x++)
{
unsigned num;
scanf("%u", &num);
switch(num)
{
case 0: case 1: case 2: case 3: case 4:
case 5: case 6: case 7: case 8: case 9:
case 10: case 11: case 12: case 13:
printf("мальчик\n");
break;
case 14: case 15: case 16: case 17: case 18:
case 19: case 20:
printf("юноша\n");
break;
case 21: case 22: case 23: case 24: case 25:
case 26: case 27: case 28: case 29: case 30:
case 31: case 32: case 33: case 34: case 35:
case 36: case 37: case 38: case 39: case 40:
case 41: case 42: case 43: case 44: case 45:
case 46: case 47: case 48: case 49: case 50:
case 51: case 52: case 53: case 54: case 55:
case 56: case 57: case 58: case 59: case 60:
case 61: case 62: case 63: case 64: case 65:
case 66: case 67: case 68: case 69: case 70:
printf("мужчина\n");
break;
default:
printf("стерец\n");
break;
}
}
return 0;
}
Anton Perevyarzev
Anton Perevyarzev
82 737
Лучший ответ
Влад =) int i = num<=13+num<=20+num<=70+num>70;
switch i...
Влад =) Вместо 70-ти кейсов будет 4.
Вообще-то возраст человека - одно число :) Но вводим сразу два возраста. И printf и scanf применяются в C, хотя в C++ они тоже есть, но применяются обычно более удобные cin и cout. Но можно и с ними

#include "stdio.h"
int f(int i){return (i<=70)+(i<=20)+(i<=13);}
int main(){
int a,b; char *v[]={"starez","muzhchina","junosha","malchik"};
scanf("%d%d",&a,&b); printf("%s %s\n",v[f(a)],v[f(b)]); return 0;}
Victor Koslov
Victor Koslov
62 904