求救!编了一个有错的C程序 找不出问题!

来源:百度知道 编辑:UC知道 时间:2024/06/03 23:22:02
给出一个不多于5位的正整数,要求:求出它是几位数
我是这样编的:

#include<stdio.h>
void main()
{
unsigned long int x,c,i;
c=x;
for(i=1;c>=10;i++)
{
c=x/10;
}
printf("%d",i);
printf("\n");
}
哎呀 输漏了
#include<stdio.h>
void main()
{
unsigned long int x,c,i;
scanf("%d",&x);
c=x;
for(i=1;c>=10;i++)
{
c=x/10;
}
printf("%d",i);
printf("\n");
}

运行时 输入1位 2位的数能得到结果 别的数输进去就没反应了 都不能跳回编辑窗口

你的X没有输入呀~
还有你每循环一次你的C都会这一次新输入的东西冲掉不能达到你的目的
循环你可以这样改
for(c=x;c!=0;c=c/10)
i++;
然后i就是你的位数

你还没输入x呢.
//
#include<stdlib.h>
#include<stdio.h>

char *itoa(int value,char *string,int radix);//此函数在#include<stdlib.h>中
//将radix进制的整数value转换成以‘\0'结束的字符串存在string中。

void main()
{
int number=0;
printf("请输入一个整数: \b");
scanf("%d",&number);
char string[25];
itoa(number,string,10);
printf("%s有",string);
int i;
for(i=0;string[i]!='\0';)
i++;
printf("%d位\n",i);//一输出的就是整数number的位数。
int j;
for (j=i-1; j>=0; --j)
{
printf("%c ",string[j]);//反序输出
}

}

#include<stdio.h>
void main()
{
unsigned long int x,c,i;
c=x;
for(i=1;c>=10;i++)
{
c=x/10;
}
printf("%d"