读书人

大家帮小弟我看看啊 ?

发布时间: 2012-02-19 19:43:39 作者: rapoo

大家帮我看看啊 ?????
[color=#FF0000][/color]/*给定程序fun的功能是:将十进制的正整数m转换为k进制(2<=k<=8)数的数字输出
如输入8和2,则应输出1000(十进制8转换成2进制为1000) */


//#include <conio.h>
#include <stdio.h>
void fun( int m, int k )
{
int aa[20], i;
for( i = 0;i<m/k; i++ )这边的范围怎么取?//
{
/**********found**********/
aa[i] = m%k;
m /= k;
}
for( i=0; i<m/k; i++ )这边的呢?
/**********found**********/
printf( "%d", aa[i] );
}

main()
{
int b, n;
// clrscr();
printf( "\nPlease enter a number and a base:\n" );
scanf( "%d %d", &n, &b );
fun( n, b );
}

谢谢了

[解决办法]
做个sf再说,HOHO~
[解决办法]
问题是什么意思,没明白,你不是已经取了个范围了吗?
[解决办法]

C/C++ code
 for( --i;i>=0; i-- ) //你写错了,这里要先减1      /**********found**********/       printf( "%d", aa[i] );
[解决办法]
#include "stdafx.h"
#include <stdio.h>
void fun( int m, int k )
{
int aa[20], i;
for( i=0;m>0; i++ ) {
/**********found**********/
aa[i]=m%k;
m/=k;

}
for( i;i>=1; i-- )
/**********found**********/
printf( "%d", aa[i-1] );

}

void main()
{
int b, n;
// clrscr();
printf( "\nPlease enter a number and a base:\n" );
scanf( "%d %d", &n, &b );
fun( n, b );
}

[解决办法]
笨重一点的方法
C/C++ code
#include <valarray>#include <iostream>#include <string>#include <stdlib.h>using namespace std;void convert(int input){    unsigned int weight[32];    unsigned int result[32];    memset(weight,sizeof(int),32);    memset(result,sizeof(int),32);    for(int i=0;i<32;i++){        weight[i]=(unsigned int)pow(2,i);    }    for(int i=31;i>=0;i--){        static unsigned int res = input;        div_t div_res=div(res,weight[i]);        result[i]=div_res.quot;        res -= div_res.quot * weight[i];    }    for(int i=31;i>=0;i--){        static int flag = 0;        if(result[i] == 0 && flag == 0){            continue;        }        cout<<result[i];        flag=1;    }    cout<<endl;}int main(int argc,char **argv){    if(argc>1){        convert(atoi(argv[1]));    }    return 0;}
[解决办法]
#include <stdio.h>
void fun( int m, int k )
{
int aa[20], i;
for(i = 0;m;i++ ) //这边的范围怎么取?
{
aa[i] = m % k;
m = m / k;
}
for( --i; i >= 0; i-- ) //这边的呢?
printf( "%d", aa[i] );
}

main()
{
int b, n;
printf( "\nPlease enter a number and a base:\n" );
scanf("%d %d",&n,&b);
fun( n, b );
}
[解决办法]
//#include <conio.h>
#include <stdio.h>


void fun( int m, int k )
{
int aa[20], i=0;
for( ;m>=k; i++ )
{
/**********found**********/
aa[i]=m%k;
m/=k;

}
aa[i]=m;
for( i;i>=0; i-- )
/**********found**********/
printf( "%d", aa[i] );

}

main()
{
int b, n;
// clrscr();
printf( "\nPlease enter a number and a base:\n" );
scanf( "%d %d", &n, &b );
fun( n, b );
}

没调试,

读书人网 >C语言

热点推荐