总是犯错 error C2181: illegal else without matching if

C++语言 码拜 9年前 (2016-04-09) 1849次浏览
#include<iostream>
using namespace std;
int main()
{
int m,n;
cin>>m;
int i,j;
int name1[100];
int date1[100];
for(i=0;i<m;i++)
{
cin>>name1[i]>>date1[i];
}
cin>>n;
int name2[100];
int date2[100];
for(j=0;j<n;j++)
{
cin>>name2[j]>>date2[j];
}
cout<<“Deleat”<<endl;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(name1[i]!=name2[j])
{
cout<<name1[i]<<endl;
break;
}
if(name1[i]=name2[j])
{
if(date1[i]=date2[j])
{break;}
else
{
date1[i]=date2[j];
break;
}
else
{
break;
}

}

}
cout<<“Copy”<<endl;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(name1[i]!=name2[j])
{
name1[i]=name2[j];
date1[i]=date2[j];
cout<<name1[i]<<endl;
break;
}

}
}
}

解决方案

80

1.有个if少了匹配的右括号
2.有几个比较的地方少了一个=,两个=才是判断相等

#include<iostream>
using namespace std;
int main()
{
	int m, n;
	cin >> m;
	int i, j;
	int name1[100];
	int date1[100];
	for (i = 0; i < m; i++)
	{
		cin >> name1[i] >> date1[i];
	}
	cin >> n;
	int name2[100];
	int date2[100];
	for (j = 0; j < n; j++)
	{
		cin >> name2[j] >> date2[j];
	}
	cout << "Deleat" << endl;
	for (i = 0; i < m; i++)
	{
		for (j = 0; j < n; j++)
		{
			if (name1[i] != name2[j])
			{
				cout << name1[i] << endl;
				break;
			}
			if (name1[i] == name2[j])
			{
				if (date1[i] == date2[j])
				{
					break;
				}
				else
				{
					date1[i] = date2[j];
					break;
				}
			}
			else
			{
				break;
			}
		}
	}
	cout << "Copy" << endl;
	for (i = 0; i < m; i++)
	{
		for (j = 0; j < n; j++)
		{
			if (name1[i] != name2[j])
			{
				name1[i] = name2[j];
				date1[i] = date2[j];
				cout << name1[i] << endl;
				break;
			}
		}
	}
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明总是犯错 error C2181: illegal else without matching if
喜欢 (0)
[1034331897@qq.com]
分享 (0)