编写一个程序,用以实现对任意给定的二元关系R和S的(各种)复合运算。
我的编程如下:(不知道为何循环后不等待输入。。。。)
#include<iostream>
using namespace std;
int main(void)
{
char a[80][2];
char b[80][2];
int i,m,j=0;
char ch;
for(i=0;i!=EOF;i++)
{
cout<<"请定义二元关系R与S中的R"<<endl;
cin>>a[i][0]>>a[i][1];
}
for(m=0;m<=80;m++)
{
cout<<"请定义二元关系R与S中的S"<<endl;
scanf("(%c,%c)",&b[m][0],&b[m][1]);
cout<<"是否继续输入S?(y/n)"<<endl;
cin>>ch;
if(ch=='n')
break;
if(ch=='y')
{
j++;
}
}
for(i=0;i<=80;i++)
{
for(m=0;m<=80;m++)
{
if(a[i][1]==b[m][0])
{
a[i][1]=b[m][1];
}
}
}
for(i=0;i<=j;i++)
cout<<"("<<a[i][0]<<","<<a[i][1]<<")"<<endl;
system("pause");
}
#include<iostream>
using namespace std;
int main(void)
{
char a[80][2];
char b[80][2];
int i,m,j=0,k=0;
char ch;
for(i=0;i<=80;i++)
{
cout<<"请定义二元关系R与S中的R"<<endl;
scanf("(%c,%c)",&a[i][0],&a[i][1]);
cout<<"是否继续输入R?(y/n)"<<endl;
cin>>ch;
if(ch=='n')
break;
if(ch=='y')
{
j++;
}
}
for(m=0;m<=80;m++)
{
cout<<"请定义二元关系R与S中的S"<<endl;
scanf("(%c,%c)",&b[m][0],&b[m][1]);
cout<<"是否继续输入S?(y/n)"<<endl;
cin>>ch;
if(ch=='n')
break;
if(ch=='y')
{
k++;
}
}
for(i=0;i<=80;i++)
{
for(m=0;m<=80;m++)
{
if(a[i][1]==b[m][0])
{
a[i][1]=b[m][1];
}
}
}
for(i=0;i<=j;i++)
cout<<"("<<a[i][0]<<","<<a[i][1]<<")"<<endl;
system("pause");
}
之前错了。。。
c++编程,系统不等待输入,自动跳转下一个语句,求解。
答案:3 悬赏:20 手机版
解决时间 2021-03-19 16:54
- 提问者网友:末路
- 2021-03-19 05:18
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-03-19 05:57
改成下面这样就可以了,添加两个fflush(stdin);清空输入缓冲区:
for(m=0;m<=80;m++)
{
cout<<"请定义二元关系R与S中的S"<<endl;
fflush(stdin);
scanf("(%c,%c)",&b[m][0],&b[m][1]);
fflush(stdin);
cout<<"是否继续输入S?(y/n)"<<endl;
cin>>ch;
if(ch=='n')
break;
if(ch=='y')
{
j++;
}
}
for(m=0;m<=80;m++)
{
cout<<"请定义二元关系R与S中的S"<<endl;
fflush(stdin);
scanf("(%c,%c)",&b[m][0],&b[m][1]);
fflush(stdin);
cout<<"是否继续输入S?(y/n)"<<endl;
cin>>ch;
if(ch=='n')
break;
if(ch=='y')
{
j++;
}
}
全部回答
- 1楼网友:想偏头吻你
- 2021-03-19 07:34
for(i=0;i!=EOF;i++)
请检查这个循环,EOF的值是-1,因此这个循环会溢出。
- 2楼网友:刀戟声无边
- 2021-03-19 06:53
你好!
在vs2008下面,第一个循环可以输入,第二个不能是因为第一个循环是死循环,不会执行到...除非i溢出,大概2*2(32)次后可能会停止第一个循环吧。
仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯