一个简单的编程题目,高手帮帮忙啊!

试编程完成如下功能:

输入一个不多于4位的整数,求出它是几位数,并逆序输出各位数字。

想了好久还是想不出什么思路,因为它要我们输出有几位数,这是最难的,请高手帮帮我~
麻烦高手们详细点!
#include <stdio.h>

main()

{
char a,b,c,d;

int e;

printf("Please input a number:\n");

scanf("%c%c%c%c",&a,&b&c&d);

c=abcd;

if(e<10)

printf("1位\n");

if(e>=10&&e<100)

printf("2位\n");

if(e>=100&&e<1000)

printf("3位\n");

if(e>=1000&&e<10000)

printf("4位\n");

}
这个我会,可是怎么转为字符串,教教我,帮我写下好吗? 我用的是C语言~~

1.大于9为两位,大于99为三位,大于999为四位
2.转为字符串,求字符串长度
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-11-24
用字符处理
第2个回答  2010-11-24
给你个简单的例子吧;

int i = 12345;
String strNum = Sting.valueof(i);
输出strNum的长度即可
第3个回答  2010-11-24
#include <stdio.h>
main()
{
char a,b,c,d;
char str[5];
char *ptr;
int e;

e = 0 // 初始化
printf("Please input a number:\n");
scanf("%c%c%c%c",&a,&b&c&d);

if(( a>= 48) && (a <= 57)) // ascii
e = e + (a-48)*1000;
else
{
printf("输入不是数字字符!请输入数字字符 \n");
return;
}
if(( b >= 48) && (b <= 57)) // ascii
e = e + (b-48)*100;
else
{
printf("输入不是数字字符!请输入数字字符 \n");
return;
}
if(( c >= 48) && (c <= 57)) // ascii
e = e + (c-48)*10;
{
printf("输入不是数字字符!请输入数字字符 \n");
return;
}
if(( d >= 48) && (d <= 57)) // ascii
e = e + d-48;
{
printf("输入不是数字字符!请输入数字字符 \n");
return;
}

if(e<10)
printf("1位\n");
if(e>=10&&e<100)
printf("2位\n");
if(e>=100&&e<1000)
printf("3位\n");
if(e>=1000&&e<10000)
printf("4位\n");

str[0] = a;
str[1] = b;
str[2] = c;
str[3] = d;
str[4] = 0;
ptr = str;
printf("%s\n", ptr);

}

一道C语言编程问题,高手们来看看帮忙解答下
for (a = 100;a > 0;a--)\/\/以A为循环变量,在1到100之间。{ for (b = a-1;b > 0;b--)\/\/以B为循环变量,在1到A之间。{ for (c = b-1;c > 0;c--)\/\/以C为循环变量,在1到B之间。{ \/\/判断公式左右两侧是不是相等,相等侧符合题目要求 if (c*c*(a*a+b*b) == ...

...编程,要求输入年月日,输出该天位于这天的第几天,请高手帮帮忙...
\/*开始计算位于该年的第几天*\/ for(i=1;i<=month;i++){ if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)\/*有31天的月份*\/ dayOfYear = dayOfYear +31;else if(i==4||i==6||i==9||i==11)\/*有30天的月份*\/ dayOfYear = dayOfYear +30;else{ \/*处理二月份...

c语言编程题,请高手帮忙做一下,拜谢,急急急急……
\/\/ 函数定义,不用太多解释了吧?一个循环解决正数值的累加,另一个是负数值的累加。\/\/ double funcPi( int n ){ double back = 0.0;int count;for (count = 1; count <= 4*n-1; count+=4){ back += (double)1\/count;} for (count = 3; count <= 4*n-1; count+=4){ b...

关于C++的一道编程题,请高手帮忙阿
while((index = strstr(current->entry,search_string)) == -1) if(next_line() != success) break; if(index == -1) cout << "String was not found."; else { cout << (current->entry).c_str() << endl; for(long i = 0; i < index; i ++) cout << " "; for(unsigned long ...

几道简单的C语言编程题,请高手帮忙
void main(){ int i,element,sum=0;for(i=1;i<=101;i+=2){ element=-i;sum=sum+element;sum=-sum;} printf("%d\\n",sum);} 2、编写程序,判断一个数是否是素数。6n+1,6n-1法代码 include<stdio.h> int main(){ int data[5]={2,3,5,7};int n;scanf("%d",&n);if(n=...

推销员问题 计算机编程 高手帮忙啊 !!!
{ \/*计算下一个可能的回路,其实就是求排列*\/ int i,j,temp;printf("\\nI am in next function...");flag=0;for(i=n-2;i>=0;i--)if(array<array[i+1])break;for(j=n-1;j>i;j--)if(array[j]>array)break;if(j==i){\/*已是最后一条回路*\/ ...

编程厉害的进
这个很简单啊,通过以下步骤就可以知道了:1.编号1~64里响应放着2的0~63次方的米粒,推算后讲所有米粒数累加得到所有米粒之和18446744073709551615。2.1400000000人,每人每天两斤(这是要吃死才算…猪也吃不了这么多吧-_-!),得到全国人每天吃掉2800000000斤米。3.每天2800000000斤米,每斤12000粒。

C语言高手,帮帮忙
case 1:printf(”$”);case 2 t printf(”$”);break;default:printf(”#”);} }(3分)这个题,因为x=0,所以执行case 0 中的语句,然后在case 0中 有switch(y==2) 所以执行case 2 中的语句 显示% 然后由break返回执行下一个语句 case 1:switch(z) ,因为z=3 ,而case ...

编程达人帮忙,急急急!!!高分答谢
暂时没有全部的,现在比较忙,没空帮你现编,电脑里也没有C语言软件。我先给你一部分,以后再慢慢补充。题目 2(找到类似的,不过排序你就自己弄了。):给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。1. 程序分析:学会分解出每一位数 2.程序源代码:main( ){...

Java编程高手速度来啊~~帮忙写一程序,搞定了给100分!
帮你写个最简单的 第一题:import java.util.Scanner;\/ Created by IntelliJ IDEA.User: guangzhi Date: 11-10-19 Time: 下午2:13 To change this template use File | Settings | File Templates.\/ public class JiSuan { public static void main(String[] args){ Scanner cin = new ...

相似回答
大家正在搜