C语言高手来一下帮我编个小程序
题目是这样的:给一个不多于5位数的正整数,要求:1求出它是几位数;2,分别打印出每一位数字;例如:个位数字为:x,十位数字为X,等等)3按逆序打印出各位数字,便如原数字是...
题目是这样的:给一个不多于5位数的正整数,要求:1求出它是几位数;2,分别打印出每一位数字;例如:个位数字为:x,十位数字为X,等等)3按逆序打印出各位数字,便如原数字是123,应输出321.
题下就是这样~~
第一个我会,不过请高手全部为小弟写出.小弟大愿把仅有20分奉上
上面的朋友不好意思,我没说全,因为我说C时间不是很长,所以只学到IF语句,还没到循环,数组之类的东东~~所以请高手用最基本的语句编出~
这是我编的程序,前两步已写出,第三步很简单所以没写,也请高手帮我指点下,谢谢`
main()
{int x,w,q,z,b,s,g,n,t,m;
printf("请输入一个不多于5位的正整数x\n");
scanf("%d",&x);
if(x>=0 && x<=9) n=1;g=x;
printf("输入的位数为%d位\n个位数字为%d\n",n,g);
if(x>=10 && x<=99) n=2;s=x/10;g=x%10;
printf("输入的位数为%d位\n十位数字为%d\n个位数字为%d\n",n,s,g);
if(x>=100 && x<=999) n=3;b=x/100;t=x/10;s=t%10;g=x%10;
printf("输入的位数为%d位\n百位数字为%d\n十位数字为%d\n个位数字为%d\n",n,b,s,g);
if(x>=1000 && x<=9999) n=4;q=x/1000;t=x/100;b=t%10;m=x/10;s=m%10;g=x%10;
printf("输入的位数为%d位\n千位数字为%d\n百位数字为%d\n十位数字为%d\n个位数字为%d\n",n,q,b,s,g);
if(x>=10000 && x<=99999) n=5;w=x/10000;t=x/1000;q=t%10;m=x/100;b=m%10;z=x/10;s=z%10;g=x%10;
printf("输入的位数为%d位\n万位数字为%d\n千位数字为%d\n百位数字为%d\n十位数字为%d\n个位数字为%d\n",n,w,q,b,s,g);
} 展开
题下就是这样~~
第一个我会,不过请高手全部为小弟写出.小弟大愿把仅有20分奉上
上面的朋友不好意思,我没说全,因为我说C时间不是很长,所以只学到IF语句,还没到循环,数组之类的东东~~所以请高手用最基本的语句编出~
这是我编的程序,前两步已写出,第三步很简单所以没写,也请高手帮我指点下,谢谢`
main()
{int x,w,q,z,b,s,g,n,t,m;
printf("请输入一个不多于5位的正整数x\n");
scanf("%d",&x);
if(x>=0 && x<=9) n=1;g=x;
printf("输入的位数为%d位\n个位数字为%d\n",n,g);
if(x>=10 && x<=99) n=2;s=x/10;g=x%10;
printf("输入的位数为%d位\n十位数字为%d\n个位数字为%d\n",n,s,g);
if(x>=100 && x<=999) n=3;b=x/100;t=x/10;s=t%10;g=x%10;
printf("输入的位数为%d位\n百位数字为%d\n十位数字为%d\n个位数字为%d\n",n,b,s,g);
if(x>=1000 && x<=9999) n=4;q=x/1000;t=x/100;b=t%10;m=x/10;s=m%10;g=x%10;
printf("输入的位数为%d位\n千位数字为%d\n百位数字为%d\n十位数字为%d\n个位数字为%d\n",n,q,b,s,g);
if(x>=10000 && x<=99999) n=5;w=x/10000;t=x/1000;q=t%10;m=x/100;b=m%10;z=x/10;s=z%10;g=x%10;
printf("输入的位数为%d位\n万位数字为%d\n千位数字为%d\n百位数字为%d\n十位数字为%d\n个位数字为%d\n",n,w,q,b,s,g);
} 展开
3个回答
展开全部
首先,我可以用字符串来做。我现在先把代码贴上:
#include <stdio.h>
int main()
{
char *str , *ch , *c[] = {"个位为:" , "十位为:" , "百位为:" , "千位为:" , "万位为:"};
scanf("%s",str);
int i = 0 ;
//要求1.求出它是几位数
printf("此数为%d位数\n",(sizeof(str)-1)) ;
//因为sizeof连最后一个结尾符都要算,所以这里我减去一个1
//要求2.分别打印出每一位数字
ch = str;
while (*ch != '\0')
{
printf("%s%c ",c[i],*ch);
ch++;
i++;
}
printf("\n");
ch--;
//要求3.按逆序输出.
while (*ch != *(str-1))
{
printf("%c",*ch);
ch--;
}
}
呵呵,你看看吧
#include <stdio.h>
int main()
{
char *str , *ch , *c[] = {"个位为:" , "十位为:" , "百位为:" , "千位为:" , "万位为:"};
scanf("%s",str);
int i = 0 ;
//要求1.求出它是几位数
printf("此数为%d位数\n",(sizeof(str)-1)) ;
//因为sizeof连最后一个结尾符都要算,所以这里我减去一个1
//要求2.分别打印出每一位数字
ch = str;
while (*ch != '\0')
{
printf("%s%c ",c[i],*ch);
ch++;
i++;
}
printf("\n");
ch--;
//要求3.按逆序输出.
while (*ch != *(str-1))
{
printf("%c",*ch);
ch--;
}
}
呵呵,你看看吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单的来。
直接拿去编译运行就是。。~
==================================
#include<stdio.h>
int main()
{ int n,i,j,k,a[5];
scanf("%d",&n);
for(i=0;n!=0;i++)
{a[i]=n%10;
n/=10;
}
printf("它是 %d 位数\n",i);
for(j=i-1,k=1;j>=0;j--,k++)
printf("第%d位数字是:%d\n",k,a[i]);
for(j=0;j<i;j++)
printf("%d",a[j]);
return 0;
}
============================================
直接拿去编译运行就是。。~
==================================
#include<stdio.h>
int main()
{ int n,i,j,k,a[5];
scanf("%d",&n);
for(i=0;n!=0;i++)
{a[i]=n%10;
n/=10;
}
printf("它是 %d 位数\n",i);
for(j=i-1,k=1;j>=0;j--,k++)
printf("第%d位数字是:%d\n",k,a[i]);
for(j=0;j<i;j++)
printf("%d",a[j]);
return 0;
}
============================================
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream.h>
void main(void)
{ int N,t=0;
cin>>N;
while(N)
{ cout<<N%10<<'\t'; t++;
N=N/10;
}
cout<<"它是"<<t<<"位数";
}
void main(void)
{ int N,t=0;
cin>>N;
while(N)
{ cout<<N%10<<'\t'; t++;
N=N/10;
}
cout<<"它是"<<t<<"位数";
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询