我用的是这个编译环境
给一个不多与五位的正整数,要求:
1.求出它是几位数
2分别输出每一位数字
3按逆顺序输出个位数字,例如原来是123,输出321.
我用的是这个编译环境
给一个不多与五位的正整数,要求:
1.求出它是几位数
2分别输出每一位数字
3按逆顺序输出个位数字,例如原来是123,输出321.
我来个另类写法 呵呵 总是一样的答案太腻歪了
#include<stdio.h>
void main()
{char Indata,num[100]={0,0,0,0,0};
int i;
i=0;
while(1)
{
Indata=getch();
if ((Indata>47&&Indata<58)||(Indata>48&&i==0))
{
printf("%c",Indata);
i=i+1;
num[i-1]=Indata;
}
if (Indata==13) break;
}
printf("\n");
for(;i--;i>=0)
printf("%c",num[i]);
getch();
}
我这程序可以支持100位数 如果把前面的num[100]定义成num[1000]那就能1000位数,还能判断输入的是否为数字,若不是数字则不理睬 ,直到输入为数字。当按回车键 则把输出结果。呵呵 总写一样的程序太腻歪了。
#include <stdio.h> #include <conio.h> #include <string.h>
void main() { char s[6],*p=s; unsigned int a[5],*p1=a; int flag=0,i; gets(s); for(i=0;i<(int)strlen(s);i++) { *p1=*p-'0'; p++,p1++; flag++; //位数 } for(i=(int)strlen(s)-1;i>=0;i--) { printf("%d",a[i]); } printf("\nflag=%d \n",flag); getch(); }
以下代码在VS2005上运行通过
#include <stdio.h> int fun1(int n) { int a = 0; if (n == 0) return 1; while (n) { a++; n /= 10; } return a; }
void fun2(int n) { int a[5],i,t = fun1(n); for (i = t - 1;i >= 0;i--) { a[i] = n % 10; n /= 10; } for (i = 0;i < t;i++) printf("%d ",a[i]); printf("\n"); }
void fun3(int n) { while (n) { printf("%d ",n % 10); n /= 10; } }
void main() { int n; scanf("%d",&n); printf("%d\n",fun1(n)); fun2(n); fun3(n); }
三个要求用三个函数实现
我 告诉你思路 及其算法,其他的自己去写哦!!
定义变量 data;来保存输入的值:
1—if(data<100000&&data>=100000)依次下去,则可以判断它是几位数
2----定义多个变量 利用data%10 data%100,data%1000 .... 来保存没一个位的值!!
这些大小写在if的{}里面!!则可以知道它是几位数
3,这个就不用我说了吧 倒过来输出@!