|
题目描述:输入1到50个数字,求最大和最小数的和,输入的数以逗号
#include <stdio.h>
#define N 50
int getAverage(int a[], int count);
int main() {
char str[100];
int a[N] = {0}; //保存解析出来的数
int i = 0;
int j = 0;
int sign = 1;
gets(str); //以字符串方式获取输入
while(str != '\0') {
if(str != ',') {
if(str == '-') {
i++;
sign = -1; //如果输入字符是负号,把正负标志置-1
}
else {
if(sign == 1) { //要保存的是一个正数
if(a[j] == 0)
a[j] = (str - '0'); //当前字符是普通整数并且上一个字符是逗号的情况
else if(a[j] > 0)
a[j] = a[j] * 10 + (str - '0'); //当前字符和上一个字符都是普通整数的情况
} else if(sign == -1) { //要保存的是一个负数
if(a[j] == 0)
a[j] = (-1) * (str - '0'); //当前字符是普通整数而上一个字符是负号的情况
else if(a[j] < 0)
a[j] = a[j] * 10 - (str - '0'); //当前字符和上一个字符都是普通正式的情况
}
i++;
}
} else { //读到“,”号意味着准备保存一个新的整数
j++;
i++;
sign = 1;
}
}
printf("最小数和最大数之和平均值:%d", getAverage(a, N));
return 0;
}
int getAverage(int a[], int count) {
int max, min;
int i;
max = min = a[0];
for(i = 0; i < count; i++) {
if(a > max)
max = a;
if(a < min)
min = a;
}
return (max + min) / 2;
}
隔开
|
|
|