Другие языки программирования и технологии

Помогите написать программу со switch в СИ

Помогите написать программу в СИ со switch для выбора через какой цикл решать программу.
я написал две программы в СИ используя разные циклы. Нужно слить эти две программы в одну и сделать через switch, чтоб пользователь мог выбрать через какой цикл должна решаться программа.

вот первая программа 1:

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
int r=0,n,n1;
printf("vvedite cislo: "); scanf("%d",&n);
for (n1=n;n1!=0;n1=n1/10){
r=(r*10)+(n1);
}
if(n == r)
printf("polindrom");
else
printf("ne polindrom");
getch();
}

вот вторая программа:

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
int r=0,n,n1;
printf("vvedite cislo: "); scanf("%d",&n);
n1=n;
while (n1!=0){
r=(r*10)+(n1);
n1=n1/10;}
if(n == r)
printf("polindrom");
else
printf("ne polindrom");
getch();
}

и вот то самое что-то как должна решаться программа через switch:

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main()
{
int r=0,n,n1,c;
printf("vvedite cislo: ");
scanf("%d",&n);
n1=n;
printf("1.while 2.do while 3.for\n");
scanf("%i",c);
switch(c)
{
case 1:
{
while (n1!=0){
r=(r*10)+(n1);
n1=n1/10;}
}break;
case 2;
{
for (n1=n;n1!=0;n1=n1/10)
{
r=(r*10)+(n1);
}
}
}
if(n == r)
printf("polindrom");
else
printf("ne polindrom");
getch();
}

помогите исправить ошибки, напишите как должна выглядить программа.
Прошу не спамить левыми ответами типо: "я могу написать в с++ или я могу написать в паскале".
#include <stdio.h>
#include <conio.h>
#include <math.h>

int main() {
    int r = 0, n, n1, c;

    printf("vvedite cislo: ");
    scanf("%d", &n);
    n1 = n;

    printf("1. while\n2. do while\n3. for\n");
    scanf("%i", &c);

    switch (c) {
        case 1:
            while (n1 != 0) {
                r = r * 10 + n1 % 10;
                n1 /= 10;
            }
            break;
        case 2:
            do {
                r = r * 10 + n1 % 10;
                n1 /= 10;
            } while (n1 != 0);
            break;
        case 3:
            for (; n1 != 0; n1 /= 10) r = r * 10 + n1 % 10;
            break;
        default:
            printf("error\n");
            return 0;
    }

    printf("%spolindrom\n", n == r ? "" : "не ");
    getch();

    return 0;
}

> int r=0,n,n1,c;
> n1=n;n1!=0;n1=n1/10
> и т. д.
Вот ты когда обычный текст пишешь, почему то ставишь пробелы после знаков препинания, а программа для тебя чем от обычного текста отличается? Зачем ты текст программы в кашу превращаешь?
SA
Sabir Aliyev
81 320
Лучший ответ