#include
#include
#include
int arr[20], j = 0;
int avg(int n)
{
int i, sum;
sum = 0;
for (i = 0; i < n; i++) {
sum += arr[i];
}
return sum / n;
}
void bsort(int n)
{
int i, k, tmp;
for (k = 0; k < n - 1; k++) {
for (i = 0; i < n - 1 - k; i++) {
if (arr[i] > arr[i+1]) {
tmp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = tmp;
}
}
}
}
int max(int n)
{
bsort(n);
return arr[n - 1];
}
int mid(int n)
{
bsort(n);
return n % 2 ? arr[(n + 1) / 2 + 1] : (arr[n / 2 - 1] + arr[n / 2]) / 2;
}
int main()
{
int i, k;
do {
printf("input your choice:");
scanf("%d", &i);
switch (i) {
case 1:
memset(arr, 0, sizeof(int) * 20);
printf("how many nums?\n");
scanf("%d", &j);
if (j > 20) {
printf("no more than 20!retry\n");
break;
}
for (k = 0; k < j; k++) {
printf("input num %d:", k + 1);
scanf("%d", &arr[k]);
}
printf("input end\n");
break;
case 2:
if (!j) {
printf("not input numers! retry\n");
break;
}
printf("avg num is %d.\n", avg(j));
break;
case 3:
if (!j) {
printf("not input numers! retry\n");
break;
}
printf("max num is %d.\n", max(j));
break;
case 4:
if (!j) {
printf("not input numers! retry\n");
break;
}
bsort(j);
printf("bubble sort in ascending\n");
for (k = 0; k < j; k++) printf("%d ", arr[k]);
printf("\n");
break;
case 5:
if (!j) {
printf("not input numers! retry\n");
break;
}
bsort(j);
printf("bubble sort in descending\n");
for (k = j - 1; k >= 0; k--) printf("%d ", arr[k]);
printf("\n");
break;
case 6:
if (!j) {
printf("not input numers! retry\n");
break;
}
printf("mid num is %d.\n", mid(j));
break;
case 0:
printf("end program!\n");
return 0;
default:
printf("wrong input!retry\n");
break;
}
} while (i);
}
效果:
纯手打,求采纳,谢谢~
#include
#include
int arr[20]={0};
int many; //个数
void Menu(); //菜单函数
void _scanf(); //输入数据
void Max(); //最大值
void Average(); //计算平均值
void Median(); //找出中位数
void SORT_max(); //从大到小
void SORT_min(); //从小到大
void _scanf()
{
int loop=0;
printf("多少个数字: ");
scanf("%d",&many);
for( ; loop < many; loop++)
{
printf("输入数字%d: ",loop+1);
scanf("%d",&arr[loop]);
}
}
void Max()
{
int i = 1, max = arr[0];
for( ; i < many; i++)
{
max < arr[i]?max = arr[i] : i++;
}
printf("Max:%d\n\n",max);
}
void Median() //找出中位数
{
int k,j,Team;
for(j = 1; j < many; j++)
{
for(k = many - 1; k >= j; k--)
{
if(arr[k] < arr[k-1]) //从小到大
{
Team = arr[k-1];
arr[k-1] = arr[k];
arr[k] = Team;
}
}
}
printf("中位数为:%d\n\n",many % 2 == 0?(arr[many/2] + arr[many/2-1])/2:arr[many/2]); //判断奇偶然后输出中位数
}
void SORT_max()
{
int j, k, Team;
for(j = 1; j < many; j++)
{
for(k = many - 1; k >= j; k--)
{
if(arr[k] > arr[k-1]) //从大到小
{
Team = arr[k-1];
arr[k-1] = arr[k];
arr[k] = Team;
}
}
}
printf("从大到小排序如下: \n\n\n");
for(j = 0; j < many; j++)
printf("%3d ",arr[j]);
}
void SORT_min()
{
int j, k, Team;
for(j = 1; j < many; j++)
{
for(k = many - 1; k >= j; k--)
{
if(arr[k] < arr[k-1]) //从小->大
{
Team = arr[k-1];
arr[k-1] = arr[k];
arr[k] = Team;
}
}
}
printf("从小到大排序如下: \n\n\n");
for(j = 0; j < many; j++)
printf("%3d ",arr[j]);
}
void Average() //计算平均值
{
double SUM=0.0;
int i;
for(i = 0; i < many; i++)
SUM += arr[i];
printf("\n\n平均值为:%.5f\n\n",SUM/many);
}
void Menu()
{
int choice;
while(1)
{
printf(" 1.输入数字\n\n"
" 2.计算平均值\n\n"
" 3.找最大值\n\n"
" 4.从小到大排序\n\n"
" 5.从大到小排序\n\n"
" 6.找中位数\n\n"
" 0.退出\n\n"
);
printf("输入选择: ");
scanf("%d",&choice);
switch(choice) //选择菜单
{
case 0:system("pause");exit(0); break; //End
case 1:_scanf(); system("pause");system("CLS");break;
case 2:Average(); system("pause");system("CLS");break;
case 3:Max(); system("pause");system("CLS");break;
case 4:SORT_max(); system("pause"); system("CLS");break;
case 5:SORT_min(); system("pause");system("CLS");break;
case 6:Median(); system("pause");system("CLS");break;
default:printf("输入输错,重新输入!\n");system("CLS");Menu();
}
}
}
int main()
{
Menu();
}
你去相关论坛里问问去