请教一个C语言的问题,在程序中如何让输入的字符除了n和y(N和Y)有效以外,输入其他的字符时,程序无反应

[复制链接]
查看11 | 回复2 | 2010-12-26 14:07:21 | 显示全部楼层 |阅读模式
下面是我的程序:
#include
#include
#include
#include
void produce(void);
void compare(int rd[30]);
void main()
{
printf("\n\n");
printf("╔═══════════════════╗\n");
printf("║
--------*****--------
║\n");
printf("║
║\n");
printf("║
版本号:1.1.0
║\n");
printf("║
软件作者:$$$
║\n");
printf("║
开发时间:2010-12-20
║\n");
printf("║
║\n");
printf("╚═══════════════════╝\n");
printf("\n");
system("pause");
system("cls");
produce();
}
void produce(void)
/*定义随机产生30个整数的函数*/
{
int i,rd[30];
char ans;
while(1)
{
srand(time(0));
printf("以下为随机产生的30个整数: \n\n");
while(ird[i+1])
{

t=rd;

rd=rd[i+1];

rd[i+1]=t;
}
for(i=0;i#include<std
回复

使用道具 举报

千问 | 2010-12-26 14:07:21 | 显示全部楼层
试下改成如下:while(ans!='n'&& ans!='N'&&ans!='y'&&ans!='Y'){system("cls"); ans=getch(); } if(ans=='y' || ans=='Y') continue; else break;
回复

使用道具 举报

千问 | 2010-12-26 14:07:21 | 显示全部楼层
不知道具体是什么需求哈,大概说一下:在等待getch输入结果的时候,如果不希望进行别的,应该不要continue或者break;建议修改如下:while(true)/*循环,等待合法输入*/{
printf("\r请选择是否继续: y(Y) / n(N):");/*行首加入\r去掉行尾的\n,重新输入时不会另起一行*/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行