[英]"step" not ending program at the end of program, but it ending it after 5 more "step"
[英]Program failed in executing step by step
#include<math.h>
#include<stdio.h>
#include<conio.h>
int binaryToDecimal(long binarynum){
int decimalnum = 0, temp = 0, remainder;
while(binarynum!=0){
remainder = binarynum % 10;
remainder = binarynum / 10;
decimalnum = decimalnum+remainder*pow(2,temp);
temp++;
}
return decimalnum;
}
long decimalToBinary(int n){
int remainder;
long binary = 0,i = 1;
while(n != 0){
remainder = n % 2;
n = n / 2;
binary = binary + (remainder*i);
i = i*10;
}
return binary;
}
int main(){
int quotient, rem,decimalnum1,decimalnum2;
long binarynum1, binarynum2;
printf("Enter dividend binary number::");
scanf("%ld",&binarynum1);
printf("Enter divisor binary number::");
scanf("%ld",&binarynum2);
/// execution stops from here.
decimalnum1 = binaryToDecimal(binarynum1);
decimalnum2 = binaryToDecimal(binarynum2);
quotient = decimalnum1/decimalnum2;
rem = decimalnum1%decimalnum2;
printf("Quotient is: %ld",decimalToBinary(quotient));
printf("Remainder is: %ld",decimalToBinary(rem));
getch();
}
我正在使用该程序来执行二进制数之间的划分。 但程序执行在第6次声明后停止。 我试图改变变量类型但仍有问题。
程序执行的输出在这里。
您的binaryToDecimal
函数中存在无限循环问题。
int binaryToDecimal(long binarynum){
int decimalnum = 0, temp = 0, remainder;
while(binarynum!=0){
remainder = binarynum % 10;
remainder = binarynum / 10;
decimalnum = decimalnum+remainder*pow(2,temp);
temp++;
}
return decimalnum;
}
改变binarynum
变量的部分在哪里? 看,它永远不会在循环中改变,所以它永远不会是0.你的循环永远运行。
您的binaryToDecimal函数在无限循环中运行。 请尝试以下功能。
int binaryToDecimal(long n)
{
int decimalNumber = 0, i = 0, remainder;
while (n!=0)
{
remainder = n%10;
n /= 10;
decimalNumber += remainder*pow(2,i);
++i;
}
return decimalNumber;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.