如何解决我这个C语言编程的问题?

2025-02-23 18:48:23
推荐回答(4个)
回答1:

用while或者do-while 都可以
我用do写了一下
# include
  void main ()
{
  float a,b,r;
  char c;

  char ch='n';
 do{
   scanf("%f%c%f",&a,&c,&b);
  switch (c)
   {
   case '+': r=a+b;printf("result=%f\n",r);break;
   case '-': r=a-b;printf("result=%f\n",r);break;
   case '*': r=a*b;printf("result=%f\n",r);break;
}
  if (c=='/')
{
  if (b==0)
   printf("Error!!\n");
  else
   {
   r=a/b;
   printf("result=%f\n",r);
   }
   }
   printf("Do you want to continue?,(y/Y)" );
   scanf("%c",&ch);
   }while (ch=='y'||ch=='Y');
}

回答2:

int k=1
while(k)
{
char tmp;
printf("do you want to continue ?\n");
scanf("%c",&tmp)
if(!strcmp(tmp,'n'))
{k=0;continue;}
……
}

回答3:

套了个循环:
# include
# include
void main ()
{
float a,b,r;
char c,tmp;
do
{
scanf("%f%c%f",&a,&c,&b);
switch (c)
{
case '+': r=a+b;printf("result=%f\n",r);break;
case '-': r=a-b;printf("result=%f\n",r);break;
case '*': r=a*b;printf("result=%f\n",r);break;
}
if (c=='/')
{
if (b==0)
printf("Error!!\n");
else
{
r=a/b;
printf("result=%f\n",r);
}
}
printf("do you want to continue ?\n");
scanf("%c",&tmp); }
while(!strcmp(tmp,'y');)
}
或者在最后加个goto语句:
# include
# include
void main ()
{
float a,b,r;
char c,tmp;
loop: scanf("%f%c%f",&a,&c,&b);
switch (c)
{
case '+': r=a+b;printf("result=%f\n",r);break;
case '-': r=a-b;printf("result=%f\n",r);break;
case '*': r=a*b;printf("result=%f\n",r);break;
}
if (c=='/')
{
if (b==0)
printf("Error!!\n");
else
{
r=a/b;
printf("result=%f\n",r);
}
}
printf("do you want to continue ?\n");
scanf("%c",&tmp);
if(!strcmp(tmp,'y')goto loop;
}

回答4:

你把你的计算程序套入一个WHILE(1)循环中
循环结尾出CIN>>一个char
然后判断char 是N就break
是Y就继续循环!