算法:和三位数排序相同,在三位数的基础上多一个与数字d的比较
#include<bits/stdc++.h>using namespace std;int main() { int a, b, c, d; int x; scanf(“%d %d %d %d”, &a, &b, &c, &d); if (a < b) { x = a; a = b; b = x; } if (a < c) { x = a; a = c; c = x; } if (a < d) { x = a; a = d; d = x; } if (b < c) { x = b; b = c; c = x; } if (b < d) { x = b...
题目描述某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:
院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;
五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;
成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得;
西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得;
班级贡献奖,每人850元,班级评议成绩高于80分(>80)的学生干部均可获得;
只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。
现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学金的条件)。
输入输入的第一行是一个整数N(1 &l...
题目描述给定一个正整数n(1<=n<=20),画出螺旋矩阵。
输入一个正整数n
输出对应画出螺旋矩阵
#include<bits/stdc++.h>using namespace std;const int maxn = 21;int a[maxn][maxn];int n;void show() { for (int x = 0; x < n; x++) { for (int y = 0; y < n; y++) { cout << a[x][y] << “ “; } cout << endl; }}void cal() { int x = 0, y = 0; a[x][y] = 1; for (int k = 2; k <= n * n; ) { while (1) { int nx =...
题目描述现在有一群同学都想结成异姓兄弟,规定按照年龄大小来从大到小排序。你来搜集这些同学的信息:姓名和对应的出生年月日。且他们不存在同年同月同日生的情况,你来帮助他们排个序。
输入输入第一行有一个整数N(0< N < 1000)表示N个同学。
接下来有N行,且每行都有一个字符串(全为小写字母且长度小于30)和3个整数 ,分别表示姓名、年、月、日。
所有同学的年龄均为1900年以后的。
输出请按从大到小的顺序输出所有同学的姓名。
假设不存在同年同月同日生的同学。
样例输入123454zhangsan 2000 7 8lisi 2000 5 2wanger 2001 5 1mazi 2000 5 1
样例输出1234mazi lisi zhangsan wanger
题解123456789101112131415161718192021#include<bits/stdc++.h>using namespace std;struct Person { char name[100]; int y, m, d;};...
题目描述描述国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的。 比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠。如果把B端接触镜面的话,魔镜会把这条项链变为ABBA。如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜)。 给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度。
输入第一行是一个整数N(N<=10)表示测试数据的组数) 每组测试数据占一行 只有一个字符串(长度小于100),由大写英文字母组成,表示最终的项链。
输出每组测试数据的输出只有一个整数,表示小H没有使用魔法前,最初的项链可能的最小长度。
题解#include<bits/stdc++.h>using namespace std;bool ok(char* w) { int n = strlen(w); if (n < 2 n & 1)return false; char s[1000]; strcpy(s, w...
题目描述输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出对于每组输入数据,输出一行,字符中间用一个空格分开。
#include<bits/stdc++.h>using namespace std;int main() { int n; cin >> n; const char* a[3],*b; string t, x, y, z; while (n–) { cin >> t; x = t[0]; y = t[1]; z = t[2]; a[0] = x.c_str(); a[1] = y.c_str(); a[2] = z.c_str(); if (strcmp(a[0], a[1]) > 0) { b ...
题目描述Print a Rectangle Draw a rectangle which has a height of H cm and a width of W cm. Draw a 1-cm square by single ‘#’.
输入The input consists of multiple datasets. Each dataset consists of two integers H and W separated by a single space. The input ends with two 0 (when both H and W are zero).
输出For each dataset, print the rectangle made of H × W ‘#’. Print a blank line after each dataset.
#include<bits/stdc++.h>using namespace std;int main(){ int h,w,i,j; while(scanf(“%d %d”...