大家帮我看看啊 ?????
[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~
[解决办法]
问题是什么意思,没明白,你不是已经取了个范围了吗?
[解决办法]
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 );
}
[解决办法]
笨重一点的方法
#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 );
}
没调试,