switch case 循环中的函数
Function in a switch case loop
是否可以将函数放入 switch case 循环中?因为我试过这个只是为了探索这个循环的更多内容。尽管我尝试了其他方法,但仍然存在问题。谁能帮帮我?
#include <stdio.h>
int main(void)
{
int choice;
switch(choice);
{
case 1:
{
int GetData()
{
int num;
printf("Enter the amount of change: ");
scanf("%d%*c", &num);
return (num);
}
int getChange (int change,int fifty,int twenty,int ten,int five)
{
int num = change;
fifty = num/50;
num %= 50;
twenty = num/20;
num %= 20;
ten = num/10;
num %= 10;
five = num/5;
num %= 5;
return (fifty, twenty, ten, five);
}
int main()
{
int change, fifty, twenty, ten, five;
change = GetData();
if ((change < 5) || (change > 95) || (change%5 > 0))
{
printf("Amount must be between 5 and 95 and be a multiple
of 5.");
}
else
{
getChange(change, fifty, twenty, ten, five);
printf("Change for %d cents: \n", change);
if (fifty > 1)
printf("%d Fifty cent piece's.\n", fifty);
if (fifty == 1)
printf("%d Fifty cent piece.\n", fifty);
if (twenty > 1)
printf("%d Twenty cent piece's.\n", twenty);
if (twenty == 1)
printf("%d Twenty cent piece.\n", twenty);
if (ten > 1)
printf("%d Ten cent piece's\n", ten);
if (ten == 1)
printf("%d Ten cent piece.\n", ten);
if (five > 1)
printf("%d Five cent piece's\n", five);
if (five == 1)
printf("%d Five cent piece.\n", five);
}
return(0);
}
没有。不仅不可能在 switch
语句中定义函数,而且根本不可能在 C 中嵌套函数定义。您必须在文件范围内定义它们。
在您提供的代码中,您根本没有理由想要或需要定义嵌套函数,因此您的潜在问题实际上可能有所不同。
另外:
你不能 return 来自一个函数的多个值,如下所示:
return (fifty, twenty, ten, five);
您尝试定义 main()
两次。
你 switch
在你初始化 choice
之前 choice
,这显然不是你想要做的。
您的 switch
语句中只有一个 case
,这意味着您根本不需要 switch
语句。
不,你不能。通常不能在另一个函数内声明函数。您只能定义它们。语言就是这样设计的。
另见这些:
我认为您需要一本好的 C 语言书籍或教程。您可以从 here, or check out this 教程中选择一本好书。我建议从书本上学习,但如果您想在线学习,提到的教程还是不错的。我自己学C的时候也参考过
是否可以将函数放入 switch case 循环中?因为我试过这个只是为了探索这个循环的更多内容。尽管我尝试了其他方法,但仍然存在问题。谁能帮帮我?
#include <stdio.h>
int main(void)
{
int choice;
switch(choice);
{
case 1:
{
int GetData()
{
int num;
printf("Enter the amount of change: ");
scanf("%d%*c", &num);
return (num);
}
int getChange (int change,int fifty,int twenty,int ten,int five)
{
int num = change;
fifty = num/50;
num %= 50;
twenty = num/20;
num %= 20;
ten = num/10;
num %= 10;
five = num/5;
num %= 5;
return (fifty, twenty, ten, five);
}
int main()
{
int change, fifty, twenty, ten, five;
change = GetData();
if ((change < 5) || (change > 95) || (change%5 > 0))
{
printf("Amount must be between 5 and 95 and be a multiple
of 5.");
}
else
{
getChange(change, fifty, twenty, ten, five);
printf("Change for %d cents: \n", change);
if (fifty > 1)
printf("%d Fifty cent piece's.\n", fifty);
if (fifty == 1)
printf("%d Fifty cent piece.\n", fifty);
if (twenty > 1)
printf("%d Twenty cent piece's.\n", twenty);
if (twenty == 1)
printf("%d Twenty cent piece.\n", twenty);
if (ten > 1)
printf("%d Ten cent piece's\n", ten);
if (ten == 1)
printf("%d Ten cent piece.\n", ten);
if (five > 1)
printf("%d Five cent piece's\n", five);
if (five == 1)
printf("%d Five cent piece.\n", five);
}
return(0);
}
没有。不仅不可能在 switch
语句中定义函数,而且根本不可能在 C 中嵌套函数定义。您必须在文件范围内定义它们。
在您提供的代码中,您根本没有理由想要或需要定义嵌套函数,因此您的潜在问题实际上可能有所不同。
另外:
你不能 return 来自一个函数的多个值,如下所示:
return (fifty, twenty, ten, five);
您尝试定义
main()
两次。你
switch
在你初始化choice
之前choice
,这显然不是你想要做的。您的
switch
语句中只有一个case
,这意味着您根本不需要switch
语句。
不,你不能。通常不能在另一个函数内声明函数。您只能定义它们。语言就是这样设计的。
另见这些:
我认为您需要一本好的 C 语言书籍或教程。您可以从 here, or check out this 教程中选择一本好书。我建议从书本上学习,但如果您想在线学习,提到的教程还是不错的。我自己学C的时候也参考过