一道c语言题目,求大神解答~~~
给一个不多于5位的正整数,要求:1、求出它是几位数2、分别输出每一位数字3、按逆序输出各位数字...
给一个不多于5位的正整数,要求:
1、求出它是几位数
2、分别输出每一位数字
3、按逆序输出各位数字 展开
1、求出它是几位数
2、分别输出每一位数字
3、按逆序输出各位数字 展开
5个回答
展开全部
先贴效果:
请输入一个不多于5位的正整数:
25879
该数是 5 位数,正序是 25879 ,逆序是 97852
再贴代码:
#include "stdio.h"
#include "conio.h"
main()
{
int x=0,y=0,old;
int count=0;
printf("请输入一个不多于5位的正整数:\n");
scanf("%d",&x);
if(x<0||x>=100000)
{
printf("对不起,您输入的数不符合要求!\n");
}
else
{
old=x;
while(x>0)
{
count++;
y=y*10+(x%10);
x=x/10;
}
printf(" 该数是 %d 位数,正序是 %d ,逆序是 %d \n",count,old,y);
}
getch();
}
思路:
while(x>0)
{
printf("%d",x%10);
x=x/10;
}
把一个数 每次除10取余,就得到个位了。
再把这个数除10(整除),就缩小为原来的10分之一了。在此处理就得到十位了。依次循环
直到为0结束!
为了按你的顺序打印出来,我就特别处理了下。用old记录原来输入的x,y记录新的数
好运!
请输入一个不多于5位的正整数:
25879
该数是 5 位数,正序是 25879 ,逆序是 97852
再贴代码:
#include "stdio.h"
#include "conio.h"
main()
{
int x=0,y=0,old;
int count=0;
printf("请输入一个不多于5位的正整数:\n");
scanf("%d",&x);
if(x<0||x>=100000)
{
printf("对不起,您输入的数不符合要求!\n");
}
else
{
old=x;
while(x>0)
{
count++;
y=y*10+(x%10);
x=x/10;
}
printf(" 该数是 %d 位数,正序是 %d ,逆序是 %d \n",count,old,y);
}
getch();
}
思路:
while(x>0)
{
printf("%d",x%10);
x=x/10;
}
把一个数 每次除10取余,就得到个位了。
再把这个数除10(整除),就缩小为原来的10分之一了。在此处理就得到十位了。依次循环
直到为0结束!
为了按你的顺序打印出来,我就特别处理了下。用old记录原来输入的x,y记录新的数
好运!
展开全部
#include "stdio.h"//
#include "string.h"//
void main(void){
char a[6],i;
printf("Type an integer(<6 long)...\nn=");
gets(a);
printf("It is %d of long.\n",strlen(a));
printf("Positive sequence output is: ");
for(i=0;a[i];printf("%c ",a[i++]));
printf("\n");
printf("Reverse sequence output is: ");
strrev(a);
for(i=0;a[i];printf("%c ",a[i++]));
printf("\n");
}
#include "string.h"//
void main(void){
char a[6],i;
printf("Type an integer(<6 long)...\nn=");
gets(a);
printf("It is %d of long.\n",strlen(a));
printf("Positive sequence output is: ");
for(i=0;a[i];printf("%c ",a[i++]));
printf("\n");
printf("Reverse sequence output is: ");
strrev(a);
for(i=0;a[i];printf("%c ",a[i++]));
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
int num=43453;
int a=0;
int i;
int digit=0; //位数
while (num)
{
a=num%10; //求余数
num=num/10;
printf("%d ",a);
digit++;
}
printf("%d",digit);
return 0;
}
int main()
{
int num=43453;
int a=0;
int i;
int digit=0; //位数
while (num)
{
a=num%10; //求余数
num=num/10;
printf("%d ",a);
digit++;
}
printf("%d",digit);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int n,i,w,a[6];//建立记录位数的w以及存储每位数的数组a
scanf("%d",&n);//输入该数
if(n>=0)//判断该数为几位数
w=1;
if(n>=10)
w=2;
if(n>=100)
w=3;
if(n>=1000)
w=4;
if(n>=10000)
w=5;
printf("%d\n",w);//输出位数
for(i=1;i<=5;i++)
{
a[i]=n/pow(10,5-i);//对n取整,用数组记录该位数的数字
n=n-a[i]*pow(10,5-i);//取该数剩下大小
}
for(i=1;i<=5;i++)//正序输出(因为之前取整是按5位数取整,如果该数小于5位,则取整出现0)
if(a[i]!=0) printf("%d",a[i]);
for(i=5;i>=1;i--)//逆序输出
if(a[i]!=0) printf("%d",a[i]);
}
void main()
{
int n,i,w,a[6];//建立记录位数的w以及存储每位数的数组a
scanf("%d",&n);//输入该数
if(n>=0)//判断该数为几位数
w=1;
if(n>=10)
w=2;
if(n>=100)
w=3;
if(n>=1000)
w=4;
if(n>=10000)
w=5;
printf("%d\n",w);//输出位数
for(i=1;i<=5;i++)
{
a[i]=n/pow(10,5-i);//对n取整,用数组记录该位数的数字
n=n-a[i]*pow(10,5-i);//取该数剩下大小
}
for(i=1;i<=5;i++)//正序输出(因为之前取整是按5位数取整,如果该数小于5位,则取整出现0)
if(a[i]!=0) printf("%d",a[i]);
for(i=5;i>=1;i--)//逆序输出
if(a[i]!=0) printf("%d",a[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个你可以输入一个string的类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |