为了账号安全,请及时绑定邮箱和手机立即绑定

麻烦看看我的错误都在哪 我以后好注意下,谢谢~~~

麻烦看看我的错误都在哪 我以后好注意下,谢谢~~~

C
泛舟湖上清波郎朗 2023-04-22 19:15:50
帮我看看while括号中应该填什么如果 错不在那 我应该改哪?#include<stdio.h>void displaymenu();main(){displaymenu();}void displaymenu(){printf("*****************************\n");printf("* 1.加法 *\n");printf("* 2.减法 *\n");printf("* 3.乘法 *\n");printf("* 4.除法 *\n");printf("* 5.求余 *\n");printf("* 6.阶乘 *\n");printf("* 7.累加 *\n");printf("* 8.结束 *\n");printf("*****************************\n");printf("请选择类型<1,2,3,4,5,6,7,8>?\n");}while(){menu();int a=0;scanf("%d",&a);switch(a){ case 1:{int i=0,j=0,add=0;scanf("%d%d",&i,&j);sum=i+j;printf("add=%d\n",add);};break;case 2:{int i=0,j=0,sub=0;scanf("%d%d",&i,&j);sub=i-j;printf("sub=%d\n",sub);};break;case 3:{int i=0,j=0,multi=0;scanf("%d%d",&i,&j);multi=i*j;printf("multi=%d\n",multi);};break;case 4:{int i=0,j=0;float divide=0;scanf("%d%d",&i,&j);divide=i/j;if(j=0)printf("erro\n");elseprintf("divide=%lf\n",divide);};break;case 5:{int i=0,j=0,arith-compliment=0;scanf("%d%d",&i,&j);arith-compliment=i%j;printf("arith-compliment=%d\n",arith-compliment);};break;case 6:{int i=0;float fac=1.0;for(i=1;i<=9;i++)fac=fac*i;printf("\n");printf("fac=%lf",fac);};break;case 7:{int i=0,sum_N=0;for(i=0;i<=9;i++)sum_N=sum_N+i;printf("\n");printf("sum_N=%d",sum_N);};break;}}
查看完整描述

2 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

你这个代码的问题太多了,下面已经给你一一改过来了,并且编译运行通过了,自己比较一下: 
你原先的错误都给你标出来了:

#include<stdio.h> 

void displaymenu() //这个函数应该放在main函数外面进行定义

printf("\n\n*****************************\n"); 
printf("* 1.加法 *\n"); 
printf("* 2.?法 *\n"); 
printf("* 3.乘法 *\n"); 
printf("* 4.除法 *\n"); 
printf("* 5.求余 *\n"); 
printf("* 6.?乘 *\n"); 
printf("* 7.累加 *\n"); 
printf("* 8.?束 *\n"); 
printf("*****************************\n"); 

printf("????型<1,2,3,4,5,6,7,8>?\n"); 


main() 

while(1) //这里应该是while(1),以实现循环的执行 

displaymenu(); //这里原先笔误成menu()了,应该是displaymenu()

int a=0; 
scanf("%d",&a); 
switch(a) 

case 1: 
{//int i=0,j=0,add=0; 这里少定义了一个sum=0;
int i=0,j=0,add=0,sum=0; 
scanf("%d%d",&i,&j); 
sum=i+j; 
printf("add=%d\n",sum); 
};break; 
case 2: 
{int i=0,j=0,sub=0; 
scanf("%d%d",&i,&j); 
sub=i-j; 
printf("sub=%d\n",sub); 
};break; 
case 3: 
{int i=0,j=0,multi=0; 
scanf("%d%d",&i,&j); 
multi=i*j; 
printf("multi=%d\n",multi); 
};break; 
case 4: 
{int i=0,j=0; 
float divide=0; 
scanf("%d%d",&i,&j); 
divide=i/j; 
if(j=0) 
printf("erro\n"); 
else 
printf("divide=%lf\n",divide); 
};break; 
case 5: 
{int i=0,j=0,arith_compliment=0; //这里原先的arith-compliment,不是C语言的合法变量名(变量名中不能有“-”)
scanf("%d%d",&i,&j); 
arith_compliment=i%j; 
printf("arith-compliment=%d\n",arith_compliment); 
};break; 
case 6: 
{int i=0; 
float fac=1.0; 
for(i=1;i<=9;i++) 
fac=fac*i; 
printf("\n"); 
printf("fac=%lf",fac); 
};break; 
case 7: 
{int i=0,sum_N=0; 
for(i=0;i<=9;i++) 
sum_N=sum_N+i; 
printf("\n"); 
printf("sum_N=%d",sum_N); 
};break; 


}


查看完整回答
反对 回复 2023-04-26
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

#include<stdio.h>

void

js(float *i,int j,char c)

{

    float m;

    scanf("%f",&m);

    if(c=='*')

    i[j]=i[j]*m;

    else

    i[j]=i[j]/m;

}


void

js2(float *i,char *c,int j,int k)

{

    for(;j>0;j--,k--)

    {

        if(c[k]=='+')

        i[j-1]=i[j-1]+i[j];

        else

        i[j-1]=i[j-1]-i[j];

    }

}


int

main(void)

{

    int ic=0,j=0,k=0;

    float i[100];

    char c[100];

    while(1)

    {

        if(ic==0)

        {

            scanf("%f",&i[j++]);

            ic=1;

        }

        if(ic=1)

        {

            c[k++]=getchar();

            if(c[k-1]=='*'||c[k-1]=='/')

            {

                js(i,j-1,c[k-1]);

                k--;

                continue ;

            }

            else if(c[k-1]=='\n')

            break;

            ic=0;

        }

    }

    js2(i,c,j-1,k-2);

    printf("%f",i[0]);

    return 0;

}

查看完整回答
反对 回复 2023-04-26
  • 2 回答
  • 0 关注
  • 183 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信