实验8-1-9-指针 输出学生成绩
本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。
输入格式:
输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。
输出格式:
按照以下格式输出:
average = 平均成绩
max = 最高成绩
min = 最低成绩
结果均保留两位小数。
输入样例:
3
85 90 95
输出样例:
average = 90.00
max = 95.00
min = 85.00
#include<stdio.h>
int main() {
int n;
scanf("%d", &n);
double p[100000];
int i;
for (i = 0; i < n; i++) scanf("%lf", &p[i]);
double max = 0, min = 100, sum = 0;
for (i = 0; i < n; i++) {
if (p[i] >= max) max = p[i];
if (p[i] <= min) min = p[i];
sum = sum + p[i];
}
printf("average = %.2f\nmax = %.2f\nmin = %.2f", sum / n, max, min);
return 0;
}
实验8-2-1 -字符串 找最小的字符串
本题要求编写程序,针对输入的N个字符串,输出其中最小的字符串。
输入格式:
输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。
输出格式:
在一行中用以下格式输出最小的字符串:
Min is: 最小字符串
输入样例:
5
Li
Wang
Zha
Jin
Xian
输出样例:
Min is: Jin
#include<stdio.h>
#include<string.h>
int main() {
char s[1000][81], *c;
int i, n;
scanf("%d", &n);
for (i = 0; i < n; i++) scanf("%s", &s[i]);
c = s[0];
for (i = 1; i < n; i++) {
if (strcmp(c, s[i]) > 0) c = s[i];
}
printf("Min is: %s", c);
return 0;
}
实验8-2-2-字符串 找最长的字符串
本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。
输入格式:
输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。
输出格式:
在一行中用以下格式输出最长的字符串:
The longest is: 最长的字符串
如果字符串的长度相同,则输出先输入的字符串。
输入样例:
5
li
wang
zhang
jin
xiang
输出样例:
The longest is: zhang
#include<stdio.h>
int zishu(char *s) {
int cnt = 0;
while (s[cnt] != '\0') cnt++;
return cnt;
}
int main() {
char s[1000][81];
int n, i, b[1000];
scanf("%d\n", &n);
for (i = 0; i < n; i++)scanf("%s", &s[i]);
for (i = 0; i < n; i++)b[i] = zishu(s[i]);
int max = 0;
for (i = 0; i < n; i++) {
if (b[i] >= max) max = b[i];
}
for (i = 0; i < n; i++) {
if (b[i] == max) {
printf("The longest is: %s\n", s[i]);
break;
}
}
return 0;
}
实验8-2-8-字符串 字符串排序
本题要求编写程序,读入5个字符串,按由小到大的顺序输出。
输入格式:
输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。
输出格式:
按照以下格式输出排序后的结果:
After sorted:
每行一个字符串
输入样例:
red yellow blue black white
输出样例:
After sorted:
black
blue
red
white
yellow
#include<stdio.h>
#include<string.h>
int main() {
char a[5][81], temp[81];
int i, j;
for (i = 0; i < 5; i++) scanf("%s", &a[i]);
for (i = 0; i < 5; i++) {
for (j = 1; j < 5 - i; j++) {
if (strcmp(a[j - 1], a[j]) > 0) {
strcpy(temp, a[j]);
strcpy(a[j], a[j - 1]);
strcpy(a[j - 1], temp);
}
}
}
printf("After sorted:\n");
for (i = 0; i < 5; i++) {
printf("%s\n", a[i]);
}
return 0;
}
字符串/冒泡排序 字符串的冒泡排序
我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(<N),输出扫描完第K遍后的中间结果序列。
输入格式:
输入在第1行中给出N和K(1≤K<N≤100),此后N行,每行包含一个长度不超过10的、仅由小写英文字母组成的非空字符串。
输出格式:
输出冒泡排序法扫描完第K遍后的中间结果序列,每行包含一个字符串。
输入样例:
6 2
best
cat
east
a
free
day
输出样例:
best
a
cat
day
east
free
#include<stdio.h>
#include<string.h>
int main() {
int i, j, x, y;
scanf("%d %d", &x, &y);
char s[100][11], temp[11];
for (i = 0; i < x; i++) scanf("%s", &s[i]);
for (i = 0; i < y; i++) {
for (j = 1; j < x - i; j++) {
if (strcmp(s[j - 1], s[j]) > 0) {
strcpy(temp, s[j - 1]);
strcpy(s[j - 1], s[j]);
strcpy(s[j], temp);
}
}
}
for (i = 0; i < x; i++) printf("%s\n", s[i]);
return 0;
}
实验8-2-10-字符串 IP地址转换
一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。
输入格式:
输入在一行中给出32位二进制字符串。
输出格式:
在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。
输入样例:
11001100100101000001010101110010
输出样例:
204.148.21.114
#include<stdio.h>
int mypow(int a, int b) {
int i, x = 1;
if (b == 0) return 1;
else {
for (i = 0; i < b; i++) {
x = x * a;
}
return x;
}
}
int main() {
char s[33];
int i, a[32], temp;
for (i = 0; i < 32; i++) scanf("%c", &s[i]);
for (i = 0; i < 32; i++) a[i] = s[i] - 48;
int b1 = 0, b2 = 0, b3 = 0, b4 = 0;
temp = 7;
for (i = 0; i < 8; i++) {
b1 = b1 + a[i] * mypow(2, temp);
temp--;
}
temp = 7;
for (i = 8; i < 16; i++) {
b2 = b2 + a[i] * mypow(2, temp);
temp--;
}
temp = 7;
for (i = 16; i < 24; i++) {
b3 = b3 + a[i] * mypow(2, temp);
temp--;
}
temp = 7;
for (i = 24; i < 32; i++) {
b4 = b4 + a[i] * mypow(2, temp);
temp--;
}
printf("%d.%d.%d.%d", b1, b2, b3, b4);
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)