alg :: Functor f => f a -> a
#include <stdio.h>
#define FUN_NUM(fun,num,...) fun ##num(__VA_ARGS__)
void p1() { puts("p1"); }
void p2() { puts("p2"); }
int main() {
FUN_NUM(p,1);
FUN_NUM(p,2);
}
int main() {
p1();
p2();
}
#include <stdio.h>
#include <stdbool.h>
int main() {
float num_1, num_2, result;
char wait, vopros;
bool correct;
printf("\n\t\t\t\t\tКАЛЬКУЛЯТОР 3.0");
do {
correct = true;
printf("\nВведите первое число: ");
scanf("%f", &num_1);
printf("\nВведите второе число: ");
scanf("%f", &num_2);
printf("\nВыберите действие +, -, *, /: ");
scanf("%01s", &wait);
switch(wait) {
case '+':
result = num_1 + num_2;
break;
case '-':
result = num_1 - num_2;
break;
case '*':
result = num_1 * num_2;
break;
case '/':
if(num_2 == 0) {
printf("\n\nТЫ ЧТО-ТО ДЕЛАЕШЬ НЕ ТАК!!!\n\n");
correct = false;
} else {
result = num_1 / num_2;
}
break;
default:
printf("Ошибка синтаксиса\n");
correct = false;
}
if(correct)
printf("%f %c %f = %f\n", num_1, wait, num_2, result);
printf("Хотите попробовать еше раз? (Y/n): ");
scanf("%01s", &vopros);
} while(vopros != 'n' && vopros != 'N');
}
В первом случае printExE выведет: (ExData 1 :$: (ExData 2 :$: ExData 3)).
Во втором - ((ExData 1 :$: ExData 2) :$: ExData 3)