⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 函数模块化 输入一组n个数,求最大-小值,平均值 大问题288.cpp

📁 我正在学习C编程
💻 CPP
字号:
#include<stdio.h>   /**/

char showMenu();  //声明显示菜单函数 
int checkMenu(); //声明核对菜单函数
void max();      //声明求最大值函数
void min();      //声明求最小值函数
void avg();      //声明求平均值函数

void main()     //主函数
{
	printf("\n\t\t\t函数调用━━结构化编程:\n\n  一个函数实现一个功能,调用不同函数实现不同功能:\n");
	char useroperate;            //定义"用户操作"变量
	while(1)
	{
		useroperate=showMenu(); //调用showMenu()函数,用户输入选项编号
		
		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;}
	}
}
char showMenu()  //定义显示菜单函数,返回整型值,无参数
{
	char select[20]; //定义"用户选择"变量
	printf("\n\t请选择下列一个选项(1~4): ");
	printf("\n\t1)求最大值\t2)求最小值\t3)求平均值\t4)退出系统\n");  
	gets(select);
	/*
	while(!(select>=49&&select<=52))
	{
		printf("  只能选择1~4,请重新输入!\n");
		select=getchar();       //有问题?
		if(select=='\n'){;} 
	}*/
	return select[0];
}

/*
int showMenu()  //定义显示菜单函数,返回整型值,无参数
{
	int select; //定义"用户选择"变量
	printf("\n\t请选择下列一个选项(1~4): ");
	printf("\n\t1)求最大值\t2)求最小值\t3)求平均值\t4)退出系统\n");  
	scanf("%d",&select); 
	while(!(select>=1&&select<=4))
	{
		printf("  只能选择1~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("\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(getchar()==' '){break;}
		else {while((flag=getchar())!='\n'){;}}
		if(flag=='\n'){;}
		printf("\n");
	}
}

void min()  //定义求最小值函数min()
{
	printf("\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("  欲继续输入吗? 是则回车,否则输入'空格'回车 ");
		getchar();
		if(getchar()==' '){break;}
		else {while(getchar()!='\n'){;}}
		printf("\n");
	}
}

void avg()  //定义求平均值函数avg()
{
	printf("\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("  欲继续输入吗? 是则回车,否则输入'空格'回车 ");
		getchar();
		if(getchar()==' '){break;}
		else {while(getchar()!='\n'){;}}
		printf("\n");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -