读书人

★新手提问进者有分★解决方案

发布时间: 2012-02-16 21:30:36 作者: rapoo

★★★新手提问,进者有分★★★
给出一个不多于5位的正整数
1.求出他是几位数
2.分别打印出每一位数字
3.按逆序打印每一位数字
e.g.原来123
则打印321

我是新手,解答时尽量详细些
谢了

[解决办法]
//int n;
char str;
sprintf(str, "%d ", n);
int len = strlen(str);
int i;
for (i = 0; i < n; i++)
{
printf( "%c ", str[i]);
}
printf( "\n ");
for (i = n - 1; i > = 0; i--)
{
printf( "%c ", str[i];
}
printf( "\n ");
[解决办法]
#include <stdio.h>
const int MAX=20;
int main()
{

int num;
int i=0;
int *ar=new int [MAX];
scanf( "%d ",&num);
while(1)
{
if(num==0)
break;
ar[i]=num%10;

num=num/10;
i++;
}
printf( "%d\n ",i);
for(int k=i;k> 0;k--)
printf( "%d ",ar[k-1]);//打印出每一位数
printf( "\n ");
for(int j=0;j <i;j++)
printf( "%d ",ar[j]);//倒序


return 0;
}
[解决办法]
我也来凑凑热闹

#include <stdlib.h>
#include <stdio.h>
#include <math.h> //log10

int main()
{
int input, buff[5],length ;
scanf( "%d ",&input);
length = (int)(log10(input) + 1);
printf( "length = %d\n%d\n ",length,input);
while(input)
{
printf( "%d ",input%10);
input/=10;
}
printf( "\n ");
system( "pause ");
}

[解决办法]
#include <stdio.h>
void main()
{
long n;
int a[10],i,len;
printf( "请输入一个不多与5位的整数: ");
scanf( "%ld ",&n);
i=0;
while(n!=0) /*从个位开始依次取出数n的每一个数字存入数组a中*/
{
a[i]=n%10;
i++;
n=n/10;
}
len=i;
printf( "(1)%d\n ",len);
printf( "(2) ");
for(i=len-1;i> =0;i--) /*分别输出每一位数字*/
printf( "%d ",a[i]);
printf( "\n(3) ");
for(i=0;i <len;i++) /*逆序输出每一位数字*/
printf( "%d ",a[i]);
}
[解决办法]
void fun(int n) {
for (int t = 0 , int p = 0; n != 0; n /= 10 , ++t)
p = p * 10 + n % 10;
cout < < "位数: " < <t < < "倒序: " < <p < <endl;
}

读书人网 >C++

热点推荐