这是个C语言编程的问题,想请问下,怎样在运行了一次后出现Do you want to continue?,y 或Y就继续计算,n或N就退出程序?谢谢各位了!!
以下是我编的程序:
# include <stdio.h>
void main ()
{
float a,b,r;
char c;
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);
}
}
}
用while或者do-while 都可以
我用do写了一下
# include <stdio.h>
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');
}
我用do写了一下
# include <stdio.h>
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');
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2008-04-15
int k=1
while(k)
{
char tmp;
printf("do you want to continue ?\n");
scanf("%c",&tmp)
if(!strcmp(tmp,'n'))
{k=0;continue;}
……
}
while(k)
{
char tmp;
printf("do you want to continue ?\n");
scanf("%c",&tmp)
if(!strcmp(tmp,'n'))
{k=0;continue;}
……
}
第2个回答 2008-04-15
套了个循环:
# include <string.h>
# include <stdio.h>
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 <string.h>
# include <stdio.h>
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;
}
# include <string.h>
# include <stdio.h>
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 <string.h>
# include <stdio.h>
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;
}
第3个回答 2008-04-15
你把你的计算程序套入一个WHILE(1)循环中
循环结尾出CIN>>一个char
然后判断char 是N就break
是Y就继续循环!
循环结尾出CIN>>一个char
然后判断char 是N就break
是Y就继续循环!