48 lines
1.2 KiB
C
48 lines
1.2 KiB
C
/*-----------------------------------------------------------------------
|
||
【程序设计】
|
||
-------------------------------------------------------------------------
|
||
题目:在此程序中,函数fun 的功能是:将十进制正整数m 转换成k(1<k<26)进制
|
||
数,并按位输出。例如,若输入8 和2,则应输出1000
|
||
(即十进制数8 转换成二进制表示是1000)。
|
||
------------------------------------------------------------------------
|
||
注意:请勿改动程序中的其他内容,不能定义新变量。
|
||
----------------------------------------------------------------------*/
|
||
#include <stdio.h>
|
||
// 函数声明
|
||
void fun(int m, int k);
|
||
int main()
|
||
{
|
||
int m, k;
|
||
printf("【请输入十进制正整数m 和进制k(1 < k < 26):】");
|
||
scanf("%d %d", &m, &k);
|
||
if (k <= 1 || k >= 26)
|
||
{
|
||
printf("错误:k 的值必须在 2 到 25 之间。\n");
|
||
return 1;
|
||
}
|
||
fun(m, k);
|
||
return 0;
|
||
}
|
||
void fun(int m, int k)
|
||
{
|
||
char result[65];
|
||
int remainder, i;
|
||
int index = 63;
|
||
result[64] = '\0';
|
||
/**********Program**********/
|
||
while(m>0){
|
||
if(m%k<9){
|
||
result[index--] = m%k +48;
|
||
}else{
|
||
result[index--] = m%k -10+65;
|
||
}
|
||
m/=k;
|
||
}
|
||
index++;
|
||
for(;index <65;index++){
|
||
printf("%c",result[index]);
|
||
}
|
||
/********** End **********/
|
||
printf("\n");
|
||
}
|