A. 实验7_1_平均成绩
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
已知某个学生n门课的成绩,求平均成绩。
输入与输出要求:首先输入一个整数n,代表课程数,n不会超过100。然后输入n个整数,代表该学生的n门课成绩,每门成绩的取值范围是0-100。这n个成绩必须使用数组存储。输出该同学的平均成绩,保留两位小数,占一行。为了提高精度,求出的平均成绩建议使用double类型存储。
输入样例
5
80 75 67 90 97
输出样例
81.80
示例代码
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int x[n];
for (int i = 0; i < n; i++)
{
scanf("%d", &x[i]);
}
double all = 0;
for (int i = 0; i < n; i++)
{
all += x[i];
}
all /= n;
printf("%.2lf\n", all);
return 0;
}
B. 实验7_2_数组查找
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
有n个互不相同的整数,存储在数组中。在这n个整数中查找m个整数,如果存在,则打印出与之相邻的整数;否则就显示无此数。
输入与输出要求:首先输入一个整数n以及n个整数(n的范围是1—1000),然后输入整数m,代表查询次数(m的范围是1—100),接着输入m个待查询的数。输出m行查询的结果,每次的查询结果中可能有一个数、两个数或没有数。若没有数则输出“NULL”。
输入样例
5
89 7890 22 56 87
6
89 7890 22 56 87 999
输出样例
7890
89 22
7890 56
22 87
56
NULL
示例代码
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
int m;
scanf("%d", &m);
int s[m];
for (int i = 0; i < m; i++)
{
scanf("%d", &s[i]);
}
for (int i = 0; i < m; i++)
{
int state = 1;
for (int j = 0; j < n; j++)
{
if (s[i] == a[j])
{
if (j - 1 >= 0 && j + 1 < n)
{
printf("%d %d\n", a[j - 1], a[j + 1]);
}
else if (j - 1 >= 0)
{
printf("%d\n", a[j - 1]);
}
else if (j + 1 < n)
{
printf("%d\n", a[j + 1]);
}
else
{
printf("NULL\n");
}
state = 0;
}
}
if (state)
{
printf("NULL\n");
}
}
return 0;
}
C. 实验7_3_奇数偶数
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
已知一个长度为n的整数数组,在保证原顺序的前提下,将该数组中所有的偶数放到所有的奇数之前,存到一个新数组中,并将新数组输出。
输入与输出要求:首先输入一个整数n,代表输入整数个数(n的范围是1—200)。然后输入n个整数,每个整数的取值范围是int型范围。输出新数组中的元素,数与数之间用空格分开,第n个数后是换行符。
输入样例
10
3 9 4 5 8 7 10 2 6 1
输出样例
4 8 10 2 6 3 9 5 7 1
示例代码
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
int b[n];
int bb = 0;
for (int i = 0; i < n; i++)
{
if (a[i] % 2 == 0)
{
b[bb++] = a[i];
}
}
for (int i = 0; i < n; i++)
{
if (a[i] % 2 == 1)
{
b[bb++] = a[i];
}
}
for (int i = 0; i < n; i++)
{
printf("%d ", b[i]);
}
return 0;
}
D. 实验7_8_最长平台
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
给定一个长度为n的整数数组,数组中连续的相等元素构成的子序列称为平台。试设计算法,求出数组中最长平台的长度。
输入与输出要求:首先输入一个整数n,代表数组元素的个数,n不会超过1000。然后是n个整数,每个整数的取值范围是int型范围。输出最长平台的长度,占一行。
输入样例
15
1 1 2 2 4 5 7 7 7 7 7 7 3 3 9
输出样例
6
示例代码
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
int max = 0;
for (int i = 0; i < n;)
{
int count = 0;
int xx = a[i];
while(a[i] == xx)
{
count++;
i++;
}
if (count > max)
{
max = count;
}
}
printf("%d\n", max);
return 0;
}
E. 实验7_9_发工资
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
每到月底,公司就要给员工发工资。每个员工的工资都是由(100,50,20,10,5,2,1) 7种面值的钞票组成的。为了发工资的简便,公司会尽量给员工发较大面值的钞票,例如某个员工的工资为1260,那么公司会给员工12张100元的、1张50元的、1张10的钞票。你的任务是,告诉你某员工的工资,你来计算如何给员工发工资。
输入与输出要求:首先输入一个正整数n(可以用int存储),代表某位员工的工资。输出给该员工发的钞票面值与数量。
输入样例
1201
2352
输出样例
100:12
1:1
100:23
50:1
2:1
示例代码
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int a[7];
int b[7] = {100, 50, 20, 10, 5, 2, 1};
for (int i = 0; i < 7; i++)
{
a[i] = n / b[i];
n %= b[i];
}
for (int i = 0; i < 7; i++)
{
if (a[i])
{
printf("%d:%d\n", b[i], a[i]);
}
}
return 0;
}
F. 实验7_10_数组交换
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
设有整数数组A和B,它们长度均为n。A数组中的元素为任意整数,不超过int型数据范围。B数组中元素的值互不相同,且取值介于0至n-1之间。现要求按数组B的内容调整A中数据的次序,比如当B[0]=9时,则要求将A[0]的内容与A[9]互换。
输入与输出要求:首先输入一个整数n(0<n<=10),代表数组A、B元素的个数。然后输入n个整数代表数组A中的元素。最后输入 n个整数代表数组B中的元素,注意B中元素的要求。输出调整后A数组的内容,数与数之间用空格分开,注意第n个数后没有空格而是换行符。
输入样例
10
5 10 3 9 4 12 8 7 11 2
1 3 6 9 2 7 0 8 5 4
输出样例
3 9 4 2 5 12 10 11 7 8
示例代码
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int a[n];
int b[n];
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
for (int i = 0; i < n; i++)
{
scanf("%d", &b[i]);
}
for (int i = 0; i < n; i++)
{
int tmp = a[i];
a[i] = a[b[i]];
a[b[i]] = tmp;
}
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
return 0;
}