欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2019.12.31 Day1练习题

程序员文章站 2024-03-08 09:10:22
...

Part 1  二维数组

NEFU952 二维矩阵对角线和

#include<bits/stdc++.h>
using namespace std;
int m, a[15][15];
int main()
{
	while(cin>>m)
	{
		int cnt = 0;
		for(int i=1; i<=m; i++)
			for(int j=1; j<=m; j++)
				scanf("%d", &a[i][j]);
		for(int i=1; i<=m; i++)
			for(int j=1; j<=m; j++)
			{
				if(j==i || j==m-i+1) 
				{
					cnt += a[i][j];
					if(i == m-i+1)
						cnt += a[i][j];
					//cout<<i<<" "<<j<<endl;
				}
				
			}
		cout<<cnt<<endl;
	}
	return 0;
}

NEFU1064 矩阵的外围

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n, m, a[15][15];
	while(cin>>n>>m)
	{
		int sum = 0;
		for(int i=1; i<=n; i++)
			for(int j=1; j<=m; j++)
				cin>>a[i][j];
		for(int i=1; i<=m; i++)
		{
			sum += a[1][i];
			sum += a[n][i];
		}
		for(int i=2; i<n; i++)
		{
			sum += a[i][1];
			sum += a[i][m];
		}
		cout<<sum<<endl;
	}
	return 0;
}

NEFU955 五人帮

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int m, n, a[20][20], b[20][20];
	while(cin>>m>>n)
	{
		int maxn = -23;
		memset(a, 0, sizeof(a));
		for(int i=2; i<=m+1; i++)
			for(int j=2; j<=n+1; j++)
				cin>>a[i][j];
		for(int i=2; i<=m+1; i++)
			for(int j=2; j<=n+1; j++)
			{
				b[i][j] = a[i][j]+a[i-1][j]+a[i+1][j]+a[i][j-1]+a[i][j+1];
				maxn = max(b[i][j], maxn);
			}
		cout<<maxn<<endl;
	}
	return 0;
}

NEFU1031 回转小矩阵

#include<bits/stdc++.h>
using namespace std;
int n, m, a[110][110];
int main()
{
	while(cin>>n>>m)
	{
		for(int i=1; i<=n; i++)
			for(int j=1; j<=m; j++)
				cin>>a[i][j];
		for(int i=m; i>=1; i--)
		{
			for(int j=1; j<n; j++)
				cout<<a[j][i]<<" ";
			cout<<a[n][i]<<endl;
		}
	}
	return 0;
}

NEFU953 矩阵相加

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int m, n, a[15][15], b[15][15];
	while(cin>>m>>n)
	{
		for(int i=1; i<=m; i++)
			for(int j=1; j<=n; j++)
				cin>>a[i][j];
		for(int i=1; i<=m; i++)
			for(int j=1; j<=n; j++)
			{
				cin>>b[i][j];
				b[i][j] += a[i][j];
			}
		for(int i=1; i<=m; i++)
		{
			for(int j=1; j<n; j++)
				cout<<b[i][j]<<" ";
			cout<<b[i][n]<<endl;
		}
	}
	return 0;
}

NEFU951 二维矩阵最大值

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int m, n, a[15][15];
	while(cin>>m>>n)
	{
		int maxn=-2, flagx, flagy;
		for(int i=1; i<=m; i++)
			for(int j=1; j<=n; j++)
			{
				cin>>a[i][j];
				if(maxn < a[i][j])
				{
					maxn = a[i][j];
					flagx = i;
					flagy = j;
				}
			}
		cout<<flagx<<" "<<flagy<<" "<<maxn<<endl;
	}
	return 0;
}

NEFU954 矩阵相乘

#include<bits/stdc++.h>
using namespace std;
int n, a[20][20], b[20][20], c[20][20];
int main()
{
	while(cin>>n)
	{
		memset(c, 0, sizeof(c));
		for(int i=1; i<=n; i++)
			for(int j=1; j<=n; j++)
				scanf("%d", &a[i][j]);
		for(int i=1; i<=n; i++)
			for(int j=1; j<=n; j++)
				scanf("%d", &b[i][j]);
		for(int i=1; i<=n; i++)
			for(int j=1; j<=n; j++)
			{
				for(int k=1; k<=n; k++)
					c[i][j] += a[i][k]*b[k][j];
			} 
		for(int i=1; i<=n; i++)
		{
			for(int j=1; j<n; j++)
				printf("%d ", c[i][j]);
			cout<<c[i][n]<<endl;
		}
	}
	return 0;
}

Part 2 结构体

NEFU1053 结构体应用

#include<bits/stdc++.h>
using namespace std;
struct node{
	int no;
	char name[25];
	double score;
}st[100];
int main()
{
	int n;
	cin>>n;
	for(int i=1; i<=n; i++)
	{
		scanf("%d", &st[i].no);
		getchar();
		gets(st[i].name);
		//getchar();
		scanf("%lf", &st[i].score);
	}
	for(int i=1; i<=n; i++)
		printf("%d  %s  %.2lf\n" ,st[i].no, st[i].name, st[i].score);
	return 0;
}

NEFU1637 身高问题

#include<bits/stdc++.h>
using namespace std;
struct node{
	int no, hei;
	char name[25];
}st[110];
bool comp(node x, node y)
{
	if(x.hei != y.hei) return x.hei>y.hei;
	else return x.no<y.no;
}
int main()
{
	int n;
	cin>>n;
	for(int i=1; i<=n; i++)
		scanf("%s %d%d", st[i].name, &st[i].hei, &st[i].no);
	sort(st+1, st+n+1, comp);
	printf("%s %d %d", st[1].name, st[1].hei, st[1].no);
	return 0;
}

NEFU1638 成绩统计

 

#include<bits/stdc++.h>
using namespace std;
struct node{
	char flag, s1[6];
	int s2;
}num[1010];
int n, cnt=0, sum=0;
int main()
{
	cin>>n;
	for(int i=1; i<=n; i++)
	{
		cin>>num[i].flag;
		if(num[i].flag == 'C')
		{
			scanf("%s", num[i].s1);
			cnt++;
		}
		else
		{
			cin>>num[i].s2;
			sum += num[i].s2;
		}
	}
	cout<<cnt<<" "<<sum/(n-cnt);
	return 0; 
}

NEFU1186 优秀学生

#include<bits/stdc++.h>
using namespace std;
struct node{
	int no, sc;
	char name[21];
}st[110];
int n, cnt=0;
int main()
{
	while(cin>>n)
	{
		cnt = 0;
		for(int i=1; i<=n; i++)
		{
			scanf("%d %s %d", &st[i].no, st[i].name, &st[i].sc);
			if(st[i].sc >= 90)
			{
				cnt++;
				printf("%d %s %d\n", st[i].no, st[i].name, st[i].sc);
			}
		}
		cout<<cnt<<endl;
	}
	return 0;
} 

NEFU1147 谁不及格?

#include<bits/stdc++.h>
using namespace std;
struct node{
	char name[25], x[11];
	double quan;
}st[12];
int n, cnt=0;
int main()
{
	while(cin>>n)
	{
		cnt = 0;
		for(int i=1; i<=n; i++)
		{
			getchar();
			gets(st[i].name);
			//cin>>st[i].x;
			//cin>>st[i].quan;
			scanf("%s%lf", st[i].x, &st[i].quan);
			if(st[i].quan < 60.0)
				cnt++;
		}
		if(cnt)
		{
			cout<<cnt<<endl;
			/*
			for(int i=1; i<=n; i++)
			{
				if(st[i].quan < 60.0)
				{
					printf("%s\n%s\n%.2lf\n", st[i].name, st[i].x, st[i].quan);
				}
			}
			*/
			for(int i=1; i<=n; i++)
			{
				if(st[i].quan < 60.0)
					printf("%s\n", st[i].name);
			}
			for(int i=1; i<=n; i++)
			{
				if(st[i].quan < 60.0)
					printf("%s\n", st[i].x);
			}
			for(int i=1; i<=n; i++)
			{
				if(st[i].quan < 60.0)
					printf("%.2lf\n", st[i].quan);
			}
		}
		else cout<<"They are Great!!"<<endl;
	}
	return 0;
}

NEFU1188 两圆的距离

#include<bits/stdc++.h>
using namespace std;
struct yuan
{  
   double x;//圆心的X轴坐标
   double r;//半径
} data[11];
int n;
bool cmp(yuan a, yuan b)
{
	return a.x<b.x;
}
int main()
{
	while(cin>>n)
	{
		for(int i=1; i<=n; i++)
			cin>>data[i].x>>data[i].r;
		sort(data+1, data+1+n, cmp);
		printf("%.2lf\n", data[n].x-data[n].r);
	}
	return 0;
}

NEFU453 校庆的活动

#include<bits/stdc++.h>
using namespace std;
struct point{
	int x, y;
}a[60];
int n, xx, yy, flagx, flagy;
int main()
{
	while(cin>>xx>>yy)
	{
		cin>>n;
		double minn = 99999;
		for(int i=1; i<=n; i++)
		{
			cin>>a[i].x>>a[i].y;
			double l=sqrt((a[i].x-xx)*(a[i].x-xx)+(a[i].y-yy)*(a[i].y-yy));
			if(minn > l)
			{
				minn = l;
				flagx = a[i].x;
				flagy = a[i].y;
			}
		}
		cout<<flagx<<" "<<flagy<<endl;
	}
	return 0;
}

NEFU1184 第4题

#include<bits/stdc++.h>
using namespace std;
struct fushu{
	double shi, xu, he1, cha1, he2, cha2;
}num[2];
void cadd(fushu x1, fushu x2)
{
	void cprint1(fushu x);
	x1.he1 = x1.shi+x2.shi;
	x1.he2 = x1.xu+x2.xu;
	cprint1(x1);
}
void cminu(fushu x1, fushu x2)
{
	void cprint2(fushu x);
	x1.cha1 = x1.shi-x2.shi;
	x1.cha2 = x1.xu-x2.xu;
	cprint2(x1);
} 
void cprint1(fushu x)
{
	printf("%.2lf", x.he1);
	if(x.he2>=0) printf("+%.2lfi\n", x.he2);
	else printf("%.2lfi\n", x.he2);
}
void cprint2(fushu x)
{
	printf("%.2lf", x.cha1);
	if(x.cha2>=0) printf("+%.2lfi\n", x.cha2);
	else printf("%.2lfi\n", x.cha2);
}
int main()
{
	while(cin>>num[0].shi>>num[0].xu)
	{
		cin>>num[1].shi>>num[1].xu;
		cadd(num[0], num[1]);
		cminu(num[0], num[1]);
		//cprint(num[0]);
	}
	return 0;
}

By_Havoc.Wei

2019.12.31 Day1练习题2019.12.31 Day1练习题

相关标签: 大一寒假培训