思路:将行数存入一个变量;将每个元素存入构建的二维数组中。数组的行数为获取的变量,数组的列数为4。由于行数不确定,因此需要构建的数组的行数为变量(VS编译器好像不支持这种写法,此次使用g++编译器实现)。
注意:忽略掉两人喊的数字相同的情景。
#include <iostream>
#include <string>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
int i=0 ;
cin >> i;
int a[i][4];//构建行数是变量的二维数组,数组的行数为i,即由用户输入给定。
int k = 0;
int sum1=0;
int sum2=0;
while (k !=i)//在填满之前,依次将内容填入数组中,每遇到一次换行,数组的行数加1.
{
for (int j = 0; j <= 3; j++)
{
cin >> a[k][j];
if (getchar() == '\n')
{
k++;
break;//这里break掉的是if;目的是为了完成当前行的读取。使用k++,是数组的行数加1,继续读取,结束从键盘读取由for循环控制(由于数组元素个数是已知的,因此for循环可以用来实现终止读取的操作,),不用额外的break
}
}
}
for (int j=0;j<=(i-1);j++)
{
if(a[j][1]!=a[j][3])//忽略掉两人喊的相同的情景
{
if(a[j][1]==(a[j][0]+a[j][2]))
{
sum2++; //乙喝
}
if(a[j][3]==(a[j][0]+a[j][2]))
{
sum1++; //甲喝
}
}
}
printf("%d %d",sum1,sum2);//输出
return 0;
}