一道C语言编程题,求大神们帮帮忙,谢谢了。。

编程实现:输入一个不多于5位的正整数,要求:(1)输出它是几位数,(2)分别输出每一位数字,(3)按逆序输出各位数字,如原数为321,则应输出123。

应准备以下测试数据

要处理的数为1位正整数;

要处理的数为2位正整数;

要处理的数为3位正整数;

要处理的数为4位正整数;

要处理的数为5位正整数;
除此之外,程序还应当对不合法的输出作必要的处理。例如:输入负数。

第1个回答  推荐于2016-05-20
#include<stdlib.h>
#include<stdio.h>
int main()
{
int num;
int a;
scanf("%d",&num);
if(num<0)
{
printf("非法输入!");
}
else if(num/10==0)
{
printf("该数字为一位数!\n");a=1;
}
else if(num/100==0)
{
printf("该数字为二位数!\n"); a=2;
}
else if(num/1000==0)
{
printf("该数字为三位数!\n"); a=3;
}
else if(num/10000==0)
{
printf("该数字为四位数!\n"); a=4;
}
else
{
printf("该数字为五位数!\n");a=5;
}
switch(a)
{
case 1:printf("正序为:%d\n",num);
printf("逆序为:%d\n",num);
break;
case 2:printf("正序为:%d\n",num);
printf("逆序为:%d%d\n",num%10,num/10);
break;
case 3:printf("正序为:%d\n",num);
printf("逆序为:%d%d%d\n",num%10,num%100/10,num/100);
break;
case 4:printf("正序为:%d\n",num);
printf("逆序为:%d%d%d%d\n",num%10,num%100/10,num%1000/100,num/1000);
break;
case 5:printf("正序为:%d\n",num);
printf("逆序为:%d%d%d%d%d\n",num%10,num%100/10,num%1000/100,num%10000/1000,num/10000);
break;
}

}
我用笨方法写的,没用字符串什么的,你可以看看本回答被提问者采纳
第2个回答  2014-10-06
#include<stdio.h>
#include <string.h>
int main()
{
int i,j,k,n=-1,x;
int num[100];
while(n<=0)
{
scanf("%d",&n);
if(n<=0)
printf("非法输入\n");
}
k=0;
for(;n;n/=10)
num[k++]=n%10;

printf("your number have %d digit\n",k);

for(i=0; i<k ; i++) //
printf("%d\t",num[i]);
printf("\n");

j=k-1;
for(i=0; i<j; i++,j--)
{
x=num[i];
num[i]=num[j];
num[j]=x;
}

for(i=0; i<k ; i++) //
printf("%d\t",num[i]);
printf("\n");
return 0;
}

刚才忘加判断了..
好孩子要自己写作业啊 - -
第3个回答  2014-10-06
# include <stdio.h>
# include <string.h>

int main(void)
{
    char ui[5] = {0};
    int i;
    
    for(i=0; i<5; i++)
    {
        ui[i] = getchar();
        if (ui[i] == '\n')
            break;
        while(ui[i]<'0'||ui[i]>'9')
        {
            puts("请输入一个正整数!请重新输入:");
            ui[i] = getchar();
        }
    }
    ui[i] = 0;
    printf("你输入的是一个%d位数\n", strlen(ui));
    printf("你输入的数的每位数分别为:");
    for(i=0; ui[i]!=0; i++)
    {
        putchar(ui[i]);
        putchar('\t');
    }
    putchar('\n');
    for(i=4; ui[i]!=0; i--)
    {
        putchar(ui[i]);
    }
    putchar('\n');
    

    return 0;
}

第4个回答  2014-10-06
#include <stdio.h>
main()
{
int a,i,t[5],n;;
while(1)
{

printf("\npls input number");
scanf("%d",&a);
if(a==111111)break;

for(i=0;i<5;i++)
{
t[i]=a%10;
a=a/10;

if(a==0)
{
n=i+1;
printf("n=%d\n",n);
break;
}
}
for(i=0;i<n;i++)
{
printf("%d ",t[i]);
}
}
}

一道c语言编程题求大神解答,找一下我错在哪了,谢谢了?
错误1:宏定义最后没有分号,将#define D 500;改为#define D 500 错误2:l不是整数,因此将l定义为int型就错了 错误3:既然规定输入格式为P=,那么输入时就不能直接输入数值,而应在数值之前输入P=,例如输入P=6000 另外,程序的不妥之处:1、利润不一定是整数,因此将P定义为int型不妥 2、i...

一道C语言的考试编程题,求大神解答啊谢谢了 一个整数加100后是个完全平...
i - 100); } return 0;}PS:如果要优化还有很多的优化空间。需要的话问我 这是结果

C语言,编程题,谢谢大佬!
include<stdio.h> int main(){ int m,n,i,t,i1,k=0;scanf("%d%d",&m,&n);for(i=m; i<=n; i++){ t=0;for(i1=i; i1; i1\/=10)t+=i1%10;if(t==5){ printf("%d ",i);k++;} } printf("\\ncount = %d\\n",k);return 0;} ...

一道C语言编程问题,高手们来看看帮忙解答下
for (c = b-1;c > 0;c--)\/\/以C为循环变量,在1到B之间。{ \/\/判断公式左右两侧是不是相等,相等侧符合题目要求 if (c*c*(a*a+b*b) == a*a*b*b){ sum = a+b+c; \/\/判定成立,求和 printf("SUM = %d\\nA = %d\\nB = %d\\nC = %d\\n",sum,a,b,c);return 0;} ...

一道c语言问题,请各位高手们帮帮忙,谢谢
char p[][20]={“get”,”put”,”out”};p是一个有3个元素的数组,数组中的每个元素都是一个char[20]类型的数组。也就是说,p是一个二维数组。strlen(p[0])+strlen(p[1])+ strlen(p[2])即计算p中的三个字符串的长度总和,为3+3+3=9。

求大哥大姐们帮忙c语言程序设计,跪求!!!
double a, b, c;scanf("%f %f %f", &a, &b, &c);printf("area = %f", area(a, b, c));return 0;} 4、编写程序,求ax ²+bx+c=0方程的根。a,b,c由键盘输入,设b ²-4ac>0。include <math.h> include <stdio.h> double area(double a, double b, double ...

c语言编程题求解,感谢!(再讲一下解题思路)
n-1)-y; else return get(x-1, y-1, lt+4*(n-1), n-2);}int main(void){ int n, i, j; scanf("%d", &n); for(i = 0; i < n; ++i) { for(j = 0; j < n; ++j) printf("%2d ", get(i, j,...

请高手用C语言帮忙做个编程的题目,谢谢了!
int IsDevided(int number,int dev){ if(number %dev == 0){ return 1;} return 0;} void EasyDone(int a){ int chose;int i,j;printf("Input your chose\\n1>能被3整除的"<Enter 1>","\\n2>能被5整除的<Enter 2>","\\n3>能被3或5整除的<Enter 3>\\n");scanf("%d",&chose)...

c语言程序,求帮忙做一下,救救孩子?
把输入的数据保存到一个数组中,并且求出这五个成绩的总和÷5就求得平均成绩,然后因为这个平均成绩是一个实数,所以在判断是否指定的同学成绩等于平均成绩时需要使用求差再取绝对值,判断其是否小于一个很小的数的方法,避免直接比较两个实数是否相等。具体的程序代码和运行情况如下图。include <stdio.h...

C语言的数组编程题,求大神解答?
C语言实现从一个数组中寻找所有众数,参考代码如下:include "stdio.h”int main(){ int a[10],n,i,j,k=0;int t[10],s[10]= {0},c[10]= {0};int max;scanf("%d", &n);if(n<1||n>10)return 0;for(i=0; i<n; ++i)scanf("%d", &a[i]);for(i=0; i<n; ++i)...

相似回答