题目描述:输入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[i] != '\0') { if(str[i] != ',') { if(str[i] == '-') { i++; sign = -1; //如果输入字符是负号,把正负标志置-1 } else { if(sign == 1) { //要保存的是一个正数 if(a[j] == 0) a[j] = (str[i] - '0'); //当前字符是普通整数并且上一个字符是逗号的情况 else if(a[j] > 0) a[j] = a[j] * 10 + (str[i] - '0'); //当前字符和上一个字符都是普通整数的情况 } else if(sign == -1) { //要保存的是一个负数 if(a[j] == 0) a[j] = (-1) * (str[i] - '0'); //当前字符是普通整数而上一个字符是负号的情况 else if(a[j] < 0) a[j] = a[j] * 10 - (str[i] - '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[i] > max) max = a[i]; if(a[i] < min) min = a[i]; } return (max + min) / 2; }
隔开