C++求助 咋改都不对
查看原帖
C++求助 咋改都不对
557023
zhangshuge123楼主2023/1/30 23:26

代码:

#include<bits/stdc++.h>
#define MAXN 10000
#define int1 long long
int a[MAXN][MAXN],b[MAXN*MAXN][2];
long double un[MAXN]={0.0};
int main()
{
	long long m,n,s,time;
	long double ave;
	scanf("%lld %lld",&n,&m);
	for(long long i=1;i<=m;++i)
	{
		s=0;
		for(long long j=1;j<=n;j++)
		{
			scanf("%d",&a[i][j]);
			s+=a[i][j];
		}
		ave=(double)s/(double)n;
		for(long long j=1;j<=n;++j)
		{
			un[i]+=(double)(a[i][j]-ave)*(double)(a[i][j]-ave);
		}
	}
	for(int1 i=1;i<=m;++i)
	{
		s=0;
		for(int1 j=1;j<=n;j++)
		{
			scanf("%d",&a[i][j]);
			s+=a[i][j];
		}
		ave=(double)s/(double)n;
		for(int1 j=1;j<=n;++j)
		{
			un[i]+=(double)(a[i][j]-ave)*(double)(a[i][j]-ave);
		}
		un[i]/=(double)n;
	}
	time=0;
	for(int1 i=n-1;i>=0;--i)
	{
		double M=-1;
		int t=0;
		for(int1 j=0;j<i;++j)
		{
			if(un[j]>M)
			{
				M=un[j];
				t=j;
			}
		}
		if(un[i]<M)
		{
			b[time][0]=t;
			b[time][1]=i;
			++time;
			std::swap(un[i],un[t]);
		}
	}
	std::cout<<time<<std::endl;
	for(int1 i=0;i<time;++i)
	{
		std::cout<<b[i][0]<<" "<<b[i][1]<<std::endl;
	}
	return 0;
}

'#4 '#5 '#6三个点显示是“结果非升序”

求大佬解惑

2023/1/30 23:26
加载中...