定义一个有80个元素的字符数组,从键盘输入一串字符,将其中的大写字母转换为小写字母,而将原来为小写的字母转换为大写字母,其他字符不变。编写程序,由键盘任意输入10个学生的成绩,分别统计各分数段的百分比。
时间: 2024-05-09 20:18:08 浏览: 74
从键盘上输入一串英文字符(不含空格与其他字符),统计每个字符的数目,并输出字母及相应的数目。
好的,让我来回答你的问题。对于第一个问题,以下是实现所需的代码:
```
#include <stdio.h>
#include <ctype.h>
int main() {
char arr[80];
printf("请输入字符串:\n");
fgets(arr, 80, stdin);
for (int i = 0; arr[i] != '\0'; i++) {
if (isupper(arr[i])) {
arr[i] = tolower(arr[i]);
}
else if (islower(arr[i])) {
arr[i] = toupper(arr[i]);
}
}
printf("转换后的字符串为:%s", arr);
return 0;
}
```
对于第二个问题,以下是实现所需的代码:
```
#include <stdio.h>
int main() {
int score[10], i, j;
float freq[10];
for (i = 0; i < 10; i++) {
printf("请输入第%d个学生的成绩:\n", i + 1);
scanf("%d", &score[i]);
}
for (i = 0; i < 10; i++) {
if (score[i] >= 90) {
freq[0]++;
}
else if (score[i] >= 80) {
freq[1]++;
}
else if (score[i] >= 70) {
freq[2]++;
}
else if (score[i] >= 60) {
freq[3]++;
}
else {
freq[4]++;
}
}
for (j = 0; j < 5; j++) {
freq[j] = freq[j] / 10 * 100;
printf("第%d个分数段的百分比为:%.2f%%\n", j + 1, freq[j]);
}
return 0;
}
```
希望这些代码能帮助你解决问题!
阅读全文