通过带有函数的switch语句传递变量
我试图学习如何使用函数通过菜单传递变量。问题是,在任何时候都没有人教过如何这样做。您可以想象,我在第一个菜单函数中输入的任何变量通常用于我的案例/其他函数,例如通过带有函数的switch语句传递变量,c,function,menu,switch-statement,C,Function,Menu,Switch Statement,我试图学习如何使用函数通过菜单传递变量。问题是,在任何时候都没有人教过如何这样做。您可以想象,我在第一个菜单函数中输入的任何变量通常用于我的案例/其他函数,例如 if (count==0) { low = number; high = number; count++; sum = number; } else { if (number < low) number = low; if (number &g
if (count==0)
{
low = number;
high = number;
count++;
sum = number;
}
else
{
if (number < low)
number = low;
if (number > high)
high = number;
count ++;
sum += number;
}
if(计数==0)
{
低=数量;
高=数量;
计数++;
总和=数字;
}
其他的
{
如果(数量<低)
数字=低;
如果(数字>高)
高=数量;
计数++;
总和+=数字;
}
不会通过函数2,任何熟悉C的人都会意识到这一点。它也不会在int main中工作。如何为其他函数定义用户输入的数字、最高值、最低值等?这是我到目前为止所做的,循环和菜单工作得很好
#include<stdlib.h>
#include<stdio.h>
int menuChoice()
{
int choice;
printf("1.Enter a number\n");
printf("2.Display Highest Number Entered\n");
printf("3.Display Lowest Number entered\n");
printf("4.Display Average of Numbers Entered\n");
printf("5.Quit\n");
printf("Enter your choice: ");
scanf("%i", &choice);
return choice;
}
int function1()
{
int number;
printf("Enter a number:\n");
scanf("%i", &number);
return number;
}
int function2()
{
}
int function3()
{
}
int function4()
{
}
int main()
{
int quit = 0;
while (quit != 1)
{
int menu;
menu = menuChoice();
switch (menu)
{
case 1:
function1();
break;
case 2:
function2();
break;
case 3:
function3();
break;
case 4:
function4();
break;
case 5:
quit = 1;
break;
default:
printf("Please enter 1 through 5\n");
}
}
return 0;
}
#包括
#包括
int menuChoice()
{
智力选择;
printf(“1.输入一个数字\n”);
printf(“2.显示输入的最高数字\n”);
printf(“3.显示输入的最低数字\n”);
printf(“4.显示输入数字的平均值\n”);
printf(“5.退出\n”);
printf(“输入您的选择:”);
scanf(“%i”和“选择”);
回报选择;
}
int function1()
{
整数;
printf(“输入一个数字:\n”);
scanf(“%i”和编号);
返回号码;
}
int函数2()
{
}
int函数3()
{
}
int函数4()
{
}
int main()
{
int-quit=0;
while(退出!=1)
{
int菜单;
menu=menuChoice();
开关(菜单)
{
案例1:
功能1();
打破
案例2:
函数2();
打破
案例3:
功能3();
打破
案例4:
函数4();
打破
案例5:
退出=1;
打破
违约:
printf(“请输入1到5\n”);
}
}
返回0;
}
让我们看看可以改进此代码的一些方法
intarr[100]来实现这一点代码>和int numCount=0代码>位于程序顶部。快速补充说明-这被称为全局变量-通常这不是一个好主意,但我们现在不担心它
函数1
中做得很好。它能很好地执行任务,即从用户那里获取一个数字并返回。现在让我们用这个数字。在案例1之后,让我们写下
arr[numCount]=function1();
numCount+=1代码>
这会将数组中第一个未使用的条目设置为输入的数字,然后增加计数器中的元素数
我认为您可以看到如何将这种思想扩展到计算输入值的平均值。这是我修改后得到的-。菜单的显示应该在一个循环中,然后当scanf()返回值时,1)检查scanf()返回的值(在本例中不是参数)是否为1。否则,在读取EOF或“\n”之前,请使用getchar()重新显示菜单。2) 成功扫描()后,检查读取的值是否在1…5范围内。如果不在该范围内,循环将再次显示菜单(可能是在显示错误消息之后。switch语句中默认情况的末尾应该有一个'break;'语句。谢谢!不过我有两个问题。1.你是如何声明变量new number的?只需在void函数中定义它就可以了?2.可以告诉我们有关INT_MAX的更多信息吗?我以前没有见过使用过。我知道如果我设置lowest=0,而不是使用INT MAX,它总是说最低的数字是零。newNum是一个参数,当你调用它时,你可以将它传递到括号中的函数中。它只存在于函数体中。我建议你找一个关于C中函数的教程来解释这一点。INT_MAX是一个大函数的快捷方式整数可以在您的计算机上使用的est值。请思考为什么将最低值设置为0不起作用。您希望首先将其初始化为一个非常大的数字,然后将任何未来的值与该值进行比较。