是语法错误,while(ch=='Y'||ch=='y'){语句}应该这样才对.
#include "stdafx.h"
#include <conio.h>
#include <ctype.h>
#include<stdio.h>
int main( void )
{
int m,n,x,max,ch
do
{
printf("请输入二个数:\n")
scanf_s("%d%d",&m,&n)
if(m>n) m=m+n,n=m-n,m=m-n
for(x=1x<=mx++)
{
if(m%x==0&&n%x==0) max=x
}
printf("最大公约数为:%d\n\n",max)
printf("重新开始计算请按“Y”,退出请按“N”")
ch=_getch()
ch=toupper(ch)
printf("\n\n")
}
while(ch=='Y'||ch=='y')
{
printf("请输入二个数:\n")
scanf_s("%d%d",&m,&n)
if(m>n) m=m+n,n=m-n,m=m-n
for(x=1x<=mx++)
{
if(m%x==0&&n%x==0) max=x
}
printf("最大公约数为:%d\n\n",max)
printf("重新开始计算请按“Y”,退出请按“N”")
ch=_getch()
ch=toupper(ch)
printf("\n\n")
}
}
用do~while()可以这样写,不过这样有点麻烦
循环控制语句没什么嵌套限制!这个程序用getchar()来输入一个字符很有可能会提前接收了里层循环的'\n',所以可能提早退出或无法退出,因为getchar()对'\n'的处理不好,即接收到'\n'会停止,而把这个'\n'留给下一个getchar()接收。
建议你把getchar()改成getch(),时输入的字符不回显,但可以接收任何字符,包括'\n'
do----while循环先执行,然后再判断while后面的条件是不是成立do{
do{...
}while(...)
}while(...)
上面的语句相当与先执行一次外层do然后接着执行内曾的do-while循环体,当执行然内层的循环体之后,判断外层的while条件
其实也可以用!只是不好控制,只要你控制的好,也无所谓啊
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)