Arrays 程序没有正确地将二进制转换为十进制
我写了一个c程序将二进制数转换成十进制数 这是我的密码Arrays 程序没有正确地将二进制转换为十进制,arrays,c,queue,break,Arrays,C,Queue,Break,我写了一个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){
#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);
}
}
#包括
int q[6],f,r;
int main()
{
int a,v,i,m,和=0;
f=r=-1;
对于(i=0;i=0;i--)
{
a=delq();
m=功率(2,i);
sum=sum+a*m;
}
printf(“十进制编号为:%d”,总和);
返回0;
}
地址(国际电子)
{
如果(r==5)
printf(“队列已满”);
其他的
{
r++;
q[r]=ele;
如果(f==-1)
f=0;
}
}
delq()
{
INTELE;
如果(f==-1)
printf(“队列为空”);
其他的
{
ele=q[f];
如果(f==r)
f=r=-1;
其他的
f++;
返回(ele);
}
}
如果输入的不是0或1,则显示输入错误,但程序未完全终止
这是我得到的输出。它不仅显示错误的输出,如117,而且没有终止
输出:
一,
0
1.
5.
输入队列空队列空队列空队列空集合号为:117
我应该如何终止该程序
感谢您的帮助。
break
语句终止循环(在您的程序中,第一个“for循环”)而不是程序
要退出程序,请使用退出(0)请将输出复制并粘贴到问题文本中。问题中的代码无法编译。您应该修复错误和警告。正确缩进代码也有助于我们理解您的代码。
break代码>语句终止循环(在程序中,第一个为循环)。要退出程序,请使用exit(0)
@vanisk是,谢谢。它起作用了。