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
上一篇: 对图像进行对比度处理,Matlab
下一篇: thinkPHP实现签到功能的方法