嘿,我正在编写一个程序,将十进制数转换为任何基本单位,从二进制到十六进制(2、3、4、....、15、16)。到目前为止,这就是我所拥有的,运行 2 到 15 之间的任何数字都会导致无限循环。我想知道您是否对我的其余项目有任何建议。运行时,这将要求您输入两个整数,第一个应该是大于 0 的十进制整数,第二个应该是您希望将其转换为的基本类型。任何和所有完成此操作的建议将不胜感激!谢谢你。
#include <stdio.h>
#include <stdlib.h>
int main(void){
int x, y, z, c;
printf("Please enter two integers: ");
scanf("%d", &x);
scanf("%d", &y);
printf("%d\n", x);
printf("%d\n", y);
printf(" \n");
if(y < 2 | y > 16){
printf("You have entered incorrect information.\n");
return 0;
}
else if(y > 1 && y < 16){
while(z != 0){
z = (x/y);
c = (x%y);
printf("%d\n", z);
}
printf("%d\n", z);
printf("%d\n", c);
}
else if(y == 16){
printf("%X\n", x);
}
}
** * ** * ** * ** * ** * ** * ** * *编辑* ** * ** * ** * ** * ** * ** * ** *
#include <stdio.h>
#include <stdlib.h>
int main(void){
int x, y, z, c, i;
printf("Please enter two integers: ");
scanf("%d", &x);
scanf("%d", &y);
printf("%d\n", x);
printf("%d\n", y);
printf(" \n");
if(y < 2 || y > 16){
printf("You have entered incorrect information.\n");
return 0;
}
else if(y > 1 && y < 17){
while(x != 0){
c = (x%y);
x = (x/y);
if( c > 1 && c < 10){
printf("%d", c);
}else if( c == 10){
c = printf("A");
}else if( c == 11){
c = printf("B");
}else if( c == 12){
c = printf("C");
}else if( c == 13){
c = printf("D");
}else if( c == 14){
c = printf("E");
}else if( c == 15){
c = printf("F");
}
}
printf("\n");
}
这是我迄今为止取得的进展。我的问题是:我无法让值 AF 正确输出以表示数字 10-15。我也无法以正确的方式显示整数。我认为这是一个简单的解决方法,但我还不习惯这个命令。谢谢大家的帮助,受益匪浅。
** * ** * ** *编辑 2** * ** * ** * ***
#include <stdio.h>
#include <stdlib.h>
int main(void){
int x, y, z, c; //Sets up variables to be used in program
printf("Please enter two integers: "); //Asks for user input
scanf("%d", &x);
scanf("%d", &y); //stores input
printf("%d\n", x);
printf("%d\n", y);
printf(" \n");
if(y < 2 || y > 16){
printf("You have entered incorrect information.\n");
return 0;
} //bug checks
else if(y > 1 && y < 17){
while(x != 0){
c = (x%y);
x = (x/y); // Loops numbers until a 0 value is reached, can be used with
// any Base
if( c == 10){
c = printf("A");
}else if( c == 11){
c = printf("B");
}else if( c == 12){
c = printf("C");
}else if( c == 13){
c = printf("D");
}else if( c == 14){
c = printf("E");
}else if( c == 15){
c = printf("F");
}else{
printf("%d", c);
}
// Returns for each remainer option
}
printf("\n");
}
}
好的第三次是魅力。我现在的代码唯一的问题是我无法弄清楚如何让它以相反的顺序输出,正确的顺序。忽略我的第二次编辑,我自己解决了。任何输入都会很棒。我真的不知道我将如何让它出现反转。感谢大家!