今天第五天堅持寫算法了,由於從前沒學過c語言,加上用的mircrosoft c++6.0,太不好用了,太愁人了。經過一些列測試,終於把數制轉化完成了。還是有一定的成就感,嘿嘿。
閒話少說,代碼奉上。
#include "stdio.h"
#include "math.h"
void main(){
int q,m,k,p,s[50];
double n;
m=0;
printf("\n 請輸入十進制數n:");
scanf("%lf",&n); //這個一定要輸入%lf
printf("\n 請輸入轉換進制數p(2-16):");
scanf("%d",&p);
printf(" (%f)10=(",n);
while(n!=0){
q=fmod(n,p);
n=floor(n/p);
m++;
s[m]=q;
}
for(k=m;k>=1;k--){
if(s[k]>9){
printf("%c",s[k]+55);
}
else{
printf("%d",s[k]);
}
}
printf(")%d\n",p);//位置要放到for循環後面,不然結果不在一塊輸出
}
今天學數據結構,可以用棧完成,一會試一試。