【发布时间】:2020-09-19 08:48:18
【问题描述】:
我写了一个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 错误输入队列 EmptyQueue EmptyQueue EmptyDecimal NO IS: 117
我应该怎么做才能终止程序?
感谢您的帮助。
【问题讨论】:
-
请将输出复制并粘贴到问题中作为文本。 meta.stackoverflow.com/q/285551/10622916问题中的代码无法编译。您应该修复错误和警告。正确缩进代码也有助于我们理解您的代码。
-
break;语句终止循环(在您的程序中,第一个 for 循环)。退出程序,使用exit(0) -
@vanisk 是的,谢谢。它正在工作。