📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

C程序设计第四章作业9

创建时间2018-01-28最后修改2018-01-28原位置/程序员成长之旅/C语言/习题(C语言程序设计)/第四章习题/字数360
目录:程序员成长之旅/C语言/习题(C语言程序设计)/第四章习题

问:

输入一个小于5的正整数,求出它是几位数、分别输出每一位数字、按照逆序输出每一位数字

答:

#include<stdio.h>

int main()

{

int Number = 0, Num = 0, i = 0;

int one, two, three, four, five;//个、十、百、千、万

printf("Enter you number:\n");

scanf("%d", &Number);

Num = Number;

if (Number > 0 && Number <= 99999)

{

while (Num/=10)//直到0停止(因为是int类型所以无法除以小数,所以在余数小于10的时候就自动停止。

{

i++;

}

}

else//进入输入错误

{

setbuf(stdin, NULL);//清除输入缓冲区

printf("You enter data is error!\n");

exit();//退出

}

i += 1;//计算出输入多少位数字

printf("Number have      [%d] digit number\n", i);

//分别求个、十、百、千、万

one = (int)(Number / 10000);

two = (int)(Number / 1000 - Number / 10000 * 10);

three = (int)(Number / 100 - Number / 1000 * 10);

four = (int)(Number / 10 - Number / 100 * 10);

five = (int)(Number / 1 - Number / 10 * 10);

//printf("%d,%d,%d,%d,%d\n", one, two, three, four, five);

switch (i)

{

case 1:

{

printf("You enter Number[%d]\n", five);

printf("Reverse is      [%d]\n", five); break;

}

case 2:

{

printf("You enter Number [%d],[%d]\n", four, five);

printf("Reverse is       [%d],[%d]\n", five, four); break;

}

case 3:

{

printf("You enter Number [%d],[%d],[%d]\n", three, four, five);

printf("Reverse is       [%d],[%d],[%d]\n", five, four,three); break;

}

case 4:

{

printf("You enter Number [%d],[%d],[%d],[%d]\n", two, three, four, five);

printf("Reverse is       [%d],[%d],[%d],[%d]\n", five, four, three,two); break;

}

case 5:

{

printf("You enter Number [%d],[%d],[%d],[%d],[%d]\n", one,two, three, four, five);

printf("Reverse is       [%d],[%d],[%d],[%d],[%d]\n", five, four, three, two,one); break;

}

default://按理说,不可能出现错误输入。

{

printf("Ou my F**king GOD!!");

break;

}

}

return 0;

}