求一个输入输出,排序,最大值,最小值,求和的c语言程序
1个回答
展开全部
#include <stdio.h>
#include <conio.h>
#define LEN 100 /*数组长度上限*/
#define elemType int /*元素类型*/
/*输入数组*/
void inputArr (elemType arr[], int len) {
int i;
for (i=0; i<len; i++)
scanf ("%d",&arr[i]);
putchar ('\n');
}
/*打印数组*/
void printArr (elemType arr[], int len) {
int i;
for (i=0; i<len; i++)
printf ("%d\t",arr[i]);
putchar ('\n');
}
/*求数组所有元素和、最大值、最小值*/
void calcArr (elemType arr[], int len, elemType *sum, elemType *max, elemType *min, int *maxIndex, int *minIndex) {
int i;
*max = *min = arr[0];
*maxIndex = *minIndex = 0;
for (i=0; i<len; i++) {
*sum += arr[i];
if (arr[i]>*max) { /*求最大值、元素编号*/
*max = arr[i];
*maxIndex = i;
}
if (arr[i]<*min) { /*求最小值、元素编号*/
*min = arr[i];
*minIndex = i;
}
}
}
/*升序冒泡排序*/
/*参数说明:*/
/*int arr[]:排序目标数组*/
/*int len:元素个数*/
void bubbleSortAsc (elemType arr[], int len) {
elemType temp;
int i, j;
for (i=0; i<len-1; i++)
for (j=0;j<len-1-i; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
int main (void) {
elemType arr[LEN];
int len;
elemType sum,min,max; /*数组所有元素和、最小值、最大值*/
int minIndex,maxIndex; /*数组最小值、最大值位置*/
printf ("请输入数组元素个数:");
scanf ("%d",&len);
printf ("请输入包含%d个元素的数组:\n",len);
inputArr (arr, len);
calcArr (arr, len, &sum, &max, &min, &maxIndex, &minIndex);
printf ("所有元素和:%d\n",sum);
printf ("最大值:Max = arr[%d] = %d\n",maxIndex,max);
printf ("最小值:Min = arr[%d] = %d\n",minIndex,min);
putchar ('\n');
puts ("排序后数组:");
bubbleSortAsc (arr, len); /*升序冒泡排序*/
printArr (arr,len);
putchar ('\n');
getch (); /*屏幕暂留*/
free (arr);
return 0;
}
运行结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询