首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入一个字符串(仅包含数字字符和空格,长度不超过80)。 对于每组测试,输出以空格分隔的所有整数的平均值,结果保留一位小数。使用C语言
时间: 2024-10-01 22:10:09 浏览: 100
Java正则验证正整数的方法分析【测试可用】
这是一个关于处理字符串并计算其中整数平均值的问题,通常会在控制台输入处理程序中遇到。下面是用C语言实现这一任务的基本步骤:
首先,你需要读取测试数据的数量T,这通常通过`scanf`函数完成,并将每个测试数据存储在一个数组或结构体中。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LINE_LENGTH 80
// 假设我们创建了一个名为nums[]的数组,用于存储处理后的整数
int nums[MAX_LINE_LENGTH];
void process_input(char* line) {
int start = 0;
for (size_t i = 0; i < strlen(line); ++i) {
if (isdigit(line[i])) { // 检查是否为数字字符
nums[start++] = line[i] - '0'; // 转换为整数并添加到数组
} else if (line[i] == ' ') { // 如果遇到空格,意味着一个整数结束
nums[start++] = '\0'; // 添加终止符
break;
}
}
}
double calculate_average(int* arr, int count) {
double sum = 0;
for (int i = 0; i < count; ++i) {
sum += arr[i];
}
return (sum / count);
}
int main() {
int T;
scanf("%d", &T);
for (int t = 0; t < T; ++t) {
char input_line[MAX_LINE_LENGTH];
scanf("%s", input_line); // 读取测试数据字符串
process_input(input_line); // 处理输入,得到整数数组
int num_count = strspn(input_line, "0123456789 ");
double average = calculate_average(nums, num_count); // 计算平均值
printf("%.1f ", average); // 输出结果保留一位小数
}
return 0;
}
```
在这个例子中,`process_input`函数负责解析输入字符串,`calculate_average`函数则计算整数平均值。注意,这个代码假设字符串中只有一个连续的整数序列,如果有多组整数,需要根据实际需求做相应的修改。
阅读全文