📄 函数模块 输入一组n个数,求最大-小值,平均值 问题.cpp
字号:
#include<stdio.h> /**/
int showMenu(); //声明显示菜单函数
int checkMenu(); //声明核对菜单函数
void max(); //声明求最大值函数
void min(); //声明求最小值函数
void avg(); //声明求平均值函数
void main() //主函数
{
printf("\n\t函数调用━━结构化编程:\n\n 一个函数实现一个功能,调用不同函数实现不同功能:\n");
int useroperate; //定义"用户操作"变量
while(1)
{
useroperate=showMenu(); //调用showMenu()函数,用户输入选项编号
if(checkMenu(useroperate,1,4)) //如用户选择选项在1~4之间,返回真1
{
if(useroperate==1){max();} //调用求最大值函数
else if(useroperate==2){min();} //调用求最小值函数
else if(useroperate==3){avg();} //调用求平均值函数
else if(useroperate==4){break;} //退出循环,程序结束
}
else {printf(" 请选择1~4之间的选项!\n"); continue;}
}
}
int showMenu() //定义显示菜单函数,返回整型值,无参数
{
int select; //定义"用户选择"变量
printf(" 请选择下列一个选项: ");
printf(" 1)求最大值 2)求最小值 3)求平均值 4)退出系统\n");
scanf("%d",&select);
return select;
}
int checkMenu(int num,int min,int max) //定义核对菜单函数,返回整型值,整型形参
{
if(num<=max && num>=min){return 1;} //如选项编号在最小编号~最大编号之间,返回真1
else {return 0;} //否则,选项编号在最小编号~最大编号之外,返回假0
}
void max() //定义求最大值函数max()
{
printf("\n\t输入一组整数(n个,n取值1~100),调用函数求最大值\n\n");
while(1)
{
int i,n,a[100],*p=a;
printf(" 输入整数个数n(n<=0或n>100时结束): ");
scanf("%d",&n); //输入非数值时死循环?
if(n<=0||n>100){break;}
for(i=0;i<n;i++)
{
printf(" 输入第%d个数: ",i+1); scanf("%d",p++);
}
p=a;
int max=*p++;
for(i=1;i<n;i++,p++)
{
if(*p>max){max=*p;}
}
printf("\t这一组数的最大值=%d\n",max); //调用max()函数返回最大值,实参a,&n传递地址赋予形参
printf(" 欲继续输入吗? 是则回车,否则输入'空格'回车 ");
char flag;
getchar();
if((flag=getchar())==' ')break;
else if(flag=='\n'){;}
printf("\n");
}
}
void min() //定义求最小值函数min()
{
printf("\n\t输入一组整数(n个,n取值1~100),调用函数求最小值\n\n");
while(1)
{
int i,n,a[100],*p=a;
printf(" 输入整数个数n(n<=0或n>100时结束): ");
scanf("%d",&n); //输入非数值时死循环?
if(n<=0||n>100){break;}
for(i=0;i<n;i++)
{
printf(" 输入第%d个数: ",i+1); scanf("%d",p++);
}
int min=a[0];
for(i=1;i<n;i++)
{
if(a[i]<min){min=a[i];}
}
printf("\t这一组数的最小值=%d\n",min); //调用min()函数返回最小值,实参a,&n传递地址赋予形参
printf(" 欲继续输入吗? 是则回车,否则输入'空格'回车 ");
char flag;
getchar();
if((flag=getchar())==' ')break;
else if(flag=='\n'){;}
printf("\n");
}
}
void avg() //定义求平均值函数avg()
{
printf("\n\t输入一组整数(n个,n取值1~100),调用函数求平均值\n\n");
while(1)
{
int i,n,a[100],*p=a;
printf(" 输入整数个数n(n<=0或n>100时结束): ");
scanf("%d",&n); //输入非数值时死循环?
if(n<=0||n>100){break;}
for(i=0;i<n;i++)
{
printf(" 输入第%d个数: ",i+1); scanf("%d",p++);
}
p=a;
float avg=0.0;
for(i=0;i<n;i++)
{
avg+=*p++;
}
avg/=n;
printf("\t这一组数的平均值=%.4f\n",avg); //调用avg()函数返回平均值,实参a,&n传递地址赋予形参
printf(" 欲继续输入吗? 是则回车,否则输入'空格'回车 ");
char flag;
getchar();
if((flag=getchar())==' ')break;
else if(flag=='\n'){;}
printf("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -