程序未正确终止将二进制转换为十进制
Program does not terminated properly convert binary to decimal
我写了一个c程序把二进制数转换成十进制数。
这是我的代码
#include<stdio.h>
int q[6],f,r;
int main()
{
int a,v,i,m,sum=0;
f=r=-1;
for(i=0;i<=5;i++)
{
scanf("%d",&v);
if (v==1 || v==0){
addq(v);
}
else{
printf("wrong input")
break;
}
}
for(i=5;i>=0;i--)
{
a=delq();
m=pow(2,i);
sum=sum+a*m;
}
printf("DECIMAL NO.IS:%d",sum);
return 0;
}
addq(int ele)
{
if(r==5)
printf("QUEUE FULL");
else
{
r++;
q[r]=ele;
if(f==-1)
f=0;
}
}
delq()
{
int ele;
if(f==-1)
printf("QUEUE EMPTY");
else
{
ele=q[f];
if(f==r)
f=r=-1;
else
f++;
return(ele);
}
}
如果我输入的不是 0 或 1,它会显示我输入错误,但程序没有完全终止。
这是我得到的 输出。不仅显示117这样的错误输出,而且还没有终止。
输出:
1
0
1个
5个
错误输入 Queue EmptyQueue EmptyQueue EmptyDecimal NO IS: 117
如何终止程序?
感谢您的帮助。
break
语句终止循环(在您的程序中,第一个 'for loop')而不是程序。
要退出程序,请使用exit(0)
我写了一个c程序把二进制数转换成十进制数。
这是我的代码
#include<stdio.h>
int q[6],f,r;
int main()
{
int a,v,i,m,sum=0;
f=r=-1;
for(i=0;i<=5;i++)
{
scanf("%d",&v);
if (v==1 || v==0){
addq(v);
}
else{
printf("wrong input")
break;
}
}
for(i=5;i>=0;i--)
{
a=delq();
m=pow(2,i);
sum=sum+a*m;
}
printf("DECIMAL NO.IS:%d",sum);
return 0;
}
addq(int ele)
{
if(r==5)
printf("QUEUE FULL");
else
{
r++;
q[r]=ele;
if(f==-1)
f=0;
}
}
delq()
{
int ele;
if(f==-1)
printf("QUEUE EMPTY");
else
{
ele=q[f];
if(f==r)
f=r=-1;
else
f++;
return(ele);
}
}
如果我输入的不是 0 或 1,它会显示我输入错误,但程序没有完全终止。
这是我得到的
输出:
1 0 1个 5个 错误输入 Queue EmptyQueue EmptyQueue EmptyDecimal NO IS: 117
如何终止程序?
感谢您的帮助。
break
语句终止循环(在您的程序中,第一个 'for loop')而不是程序。
要退出程序,请使用exit(0)