看了辰东的圣墟好失望:C语言:我马上上机考试了,请帮我一下

来源:百度文库 编辑:高考问答 时间:2024/05/07 13:14:45
输入一个不超过5位数的正整数,要求:1求出它是几位数;2分别显示出每一位数字;3按逆序显示出各位数字,一如123应输出321。

// zd_39.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
char buffer[6];
printf("请输入一个不大于五位的整数:\n");
scanf("%s",buffer);
printf("位数是:%d\n",strlen(buffer));
for(int i=0;i<strlen(buffer);i++)
printf("第%d位是:%d\n",i+1,buffer[i]-48);
printf("逆序显示为:\n");
for(i=strlen(buffer)-1;i>=0;i--)
printf("%d",buffer[i]-48);
printf("\n");
return 0;
}

运行结果:
请输入一个不大于五位的整数:
34567
位数是:5
第1位是:3
第2位是:4
第3位是:5
第4位是:6
第5位是:7
逆序显示为:
76543
Press any key to continue

回答者:ivyforgood - 试用期 一级 5-14 17:36
我用字符代表数字有什么问题吗?
你说是对字符串操作方便还是对整型数组操作方便?
这种题目规定就是要输入整数,你偏要输入别的字符那不是你在找事吗?
就算是对整型数进行操作
难道我就不能输入其它字符了吗????
结果不还是一样报异常
如果不想报异常就要对非法字符进行判断
我的程序中难道就不能加非法字符判断了吗?
同样都了非法字符判断后我的程序和用整型有什么区别?
只是我的程序更简洁,效率更高一些而已
这种小程序你跟我讲什么健壮性
也许是以为能说出几个名词就很厉害吧

这个是老谭书上的练习题。。不过是C++的《C++程序设计题解与上机指导》上有。。。自己,买一本来翻。。。还是,没分不说。

#include "stdio.h"
void main()
{long num;
int w1,w2,w3,w4,w5,w;
clrscr();
printf("Please input a numbe(0<=num<=99999):");
scanf("%ld",&num);
if(num>99999||num<0)
printf("wrong number!!");
else{ w1=num%10;
w2=(num%100)/10;
w3=(num/100)%10;
w4=(num/1000)%10;
w5=num/10000;
if(num>=10000) w=5;
else if(num>=1000)w=4;
else if(num>=100) w=3;
else if(num>=10) w=2;
else w=1;
printf("%d\t",w);
switch(w)
{
case 5: printf("%d\b\b",w5);
case 4: printf("%d\b\b",w4);
case 3: printf("%d\b\b",w3);
case 2: printf("%d\b\b",w2);
case 1: printf("%d\b\b",w1);
}
}
}
好好学习,天天向上才是硬道理
qq516413400

上边的代码“健壮性”太差了吧!让你输入一个整数,你却故意设置成为字符格式,你正确输入数字式的字符是可以的,一旦有其他非数字字符,你还处理什么啊!

自己上网找找,会有的

没分不说!