用数组和tolower和toupper求输入10个数去掉最大最小求平均值
时间: 2023-05-12 14:07:34 浏览: 73
以下是用 C 语言实现的代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int nums[10];
int sum = 0, min = 1000000, max = -1000000;
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &nums[i]);
nums[i] = tolower(nums[i]); // 转换为小写字母
if (nums[i] < min) min = nums[i];
if (nums[i] > max) max = nums[i];
sum += nums[i];
}
sum = sum - min - max; // 去掉最大值和最小值
float avg = (float)sum / 8; // 求平均值
printf("去掉最大值和最小值后的平均值为:%.2f\n", avg);
return 0;
}
```
这段代码可以接受用户输入 10 个整数,然后将它们转换为小写字母,并去掉其中的最大值和最小值,最后求剩余数字的平均值。
相关问题
c语言输入一个字符数组,统计数组里A和B的数量
可以使用循环遍历字符数组,并用if语句判断当前字符是否为A或B,然后累加计数器即可。下面是一个示例代码:
```
#include <stdio.h>
int main()
{
char str[100];
int countA = 0, countB = 0;
printf("请输入一个字符串:");
scanf("%s", str);
for (int i = 0; str[i] != '\0'; i++)
{
if (str[i] == 'A')
countA++;
else if (str[i] == 'B')
countB++;
}
printf("A的数量:%d\nB的数量:%d\n", countA, countB);
return 0;
}
```
注意:此代码假设输入的字符串中只包含大写字母A和B,如果输入了其他字符,则不会进行计数。如果需要支持小写字母或其他字符,可以使用tolower()函数将字符转换为小写后再进行判断。
用字符数组统计出现的字母,数字,是什么,和其出现次数
好的,这是一个很好的编程问题。以下是一个示例代码,可以用来统计字符数组中出现的字母和数字以及它们的出现次数:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int count[36] = {0}; // 26个字母和10个数字,共36个字符
int i;
printf("请输入一个字符串:");
fgets(str, 100, stdin);
for (i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) { // 如果是字母
count[tolower(str[i]) - 'a']++;
} else if (isdigit(str[i])) { // 如果是数字
count[str[i] - '0' + 26]++;
}
}
printf("字母和数字出现次数如下:\n");
for (i = 0; i < 26; i++) {
printf("%c: %d\n", 'a' + i, count[i]);
}
for (i = 0; i < 10; i++) {
printf("%d: %d\n", i, count[i + 26]);
}
return 0;
}
```
这个程序首先定义了一个字符数组 `str`,用来存储输入的字符串。然后定义了一个整型数组 `count`,用来存储每个字母和数字出现的次数。数组的前26个元素表示26个字母,后10个元素表示10个数字。
接下来,程序使用 `fgets` 函数从标准输入中读取一个字符串,并使用一个循环遍历字符串中的每个字符。如果字符是字母,则将其转换为小写字母,并将其出现次数加1;如果字符是数字,则将其出现次数加1。
最后,程序使用一个循环遍历整个 `count` 数组,并输出每个字母和数字出现的次数。
希望这个程序能够帮助你解决问题。