关于#i#的问题,如何解决?(关键词-else)

我想要达到的结果
#include
void fouding(int a,int b)
{
    int  i;
    if(a==1)
    {
        i=0;
    }
    else i=1;
    printf("fouding : %d\n",i);
}
void hequ(int a,int b)
{
    int i;
    if(a==1&&b==1)
    {
        i=1;
    }
    else i=0;
    printf("p^q : %d\n",i);
}
void xiqu(int a,int b)
{
    int i;
    if(a==1||b==1)
    {
        i=1;
    }
    else i=0;
    printf("pVq : %d\n",i);
}
void yunhan(int a,int b)
{
    int i;
    if(a==1&&b==0)
    {
        i=0;
    }
    else i=1;
    printf("p-->q : %d\n",i);
}
void dengjia(int a,int b)
{
    int i;
    if(a==b)
    {
        i=1;
    }
    else i=0;
    printf("p<-->q : %d\n",i);
}
int main()
{
    int p,q,i,z;
   while(1){
        printf("是否运算程序(1/0):");
        scanf("%d\n",&z);
        if(z!=1)
        {
            break;
        }
        printf("输入p的真值(0/1):");
        scanf("%d\n",&p);
        printf("输入q的真值(0/1):");
        scanf("%d\n",&q);

      if((p!=0 &&p!=1) ||( q!=0 && q!=1))
        {
            printf("值只能为1或0\n");
            continue;
        }
        
        else {
            fouding(p,q);
            hequ(p,q);
            xiqu(p,q);
            yunhan(p,q);
            dengjia(p,q);
        }
        printf("是否运算程序(1/0):");
        scanf("%d",&i);
        if(i==0)
        break;
        else continue;
    } 
    return 0;
}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/316304910266116.jpg "#left")


改了scanf的地方,还改了一些小细节:

#include<stdio.h>
#include <iostream>
void fouding(int a,int b)
{
    int  i;
    if(a==1)
    {
        i=0;
    }
    else i=1;
    printf("fouding : %d\n",i);
}
void hequ(int a,int b)
{
    int i;
    if(a==1&&b==1)
    {
        i=1;
    }
    else i=0;
    printf("p^q : %d\n",i);
}
void xiqu(int a,int b)
{
    int i;
    if(a==1||b==1)
    {
        i=1;
    }
    else i=0;
    printf("pVq : %d\n",i);
}
void yunhan(int a,int b)
{
    int i;
    if(a==1&&b==0)
    {
        i=0;
    }
    else i=1;
    printf("p-->q : %d\n",i);
}
void dengjia(int a,int b)
{
    int i;
    if(a==b)
    {
        i=1;
    }
    else i=0;
    printf("p<-->q : %d\n",i);
}
int main()
{
    int p,q,i,z;
    while(1){
        printf("是否运算程序(1/0):");
        scanf("%d",&z);
        if(z!=1)
        {
            break;
        }
        printf("输入p的真值(0/1):");
        scanf("%d",&p);
        printf("输入q的真值(0/1):");
        scanf("%d",&q);

        if((p!=0 &&p!=1) ||( q!=0 && q!=1))
        {
            printf("值只能为1或0\n");
            continue;
        }

        else {
            fouding(p,q);
            hequ(p,q);
            xiqu(p,q);
            yunhan(p,q);
            dengjia(p,q);
        }
        //printf("是否运算程序(1/0):");
        //scanf("%d",&i);
        /*if(i==0)
            break;
        else continue;*/
    } 
    system("pause");
    return 0;
}



结果:

img

啥问题啊?
scanf("%d\n",&z);
scanf语句不要加\n,属于自找麻烦

第63 65 行里,输入语句里”%d\n“ ,’\n' 符多余了,应该为:scanf("%d",&p); scanf("%d",&q);