社区讨论

20分,二维数组,测试数据结果一致,测试点只有一个AC,求大佬指正

P5728【深基5.例5】旗鼓相当的对手参与者 3已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lo355544
此快照首次捕获于
2023/10/24 00:57
2 年前
此快照最后确认于
2023/10/24 00:57
2 年前
查看原帖
C
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int i,j,z,n,c,c0=0,count=0;
	cin>>n;
	int **a=NULL;
	a=new int*[n];
	for(i=0;i<n;i++)
	a[i]=new int[3];
    //创建二维数组,行代表人,列代表语数外
	for(i=0;i<n;i++){
		for(j=0;j<3;j++){
			cin>>a[i][j];
		}
	}
    //输入每个人的成绩
	for(i=0;i<n;i++){
		for(j=n-1;j>i;j--){
			for(z=0;z<3;z++){
            //i为比较对象,j为被比较对象,z为科目,被比较对象从最后一人开始依次累-,但始终在比较者之下,防止重复比较
				if(a[i][z]-a[j][z]>0)
				c=a[i][z]-a[j][z];
				else
				c=a[j][z]-a[i][z];
				c0+=c;
                //c为每门分值差,c0为三门总分分值差
			if(c<=5&&c0<=10)
			continue;
            //此科分值差不大于5,累计总分分值差不大于10分则继续比较其他科目
			else
			break;
            //大于5,大于10,舍弃
            }
			c0=0;
			if(z==3&&c0<=10&&c<=5)
			count++;//满足三科都比较完了且每科分值差与累计总分差不大于5不大于10,计数器+1
		}
		
	}
	cout<<count<<endl;
    //输出计数器
	}

回复

6 条回复,欢迎继续交流。

正在加载回复...