函数将多值返回到main函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数将多值返回到main函数相关的知识,希望对你有一定的参考价值。
这段代码是我主要代码的一部分,在这部分中,用户输入的每个产品代码,数量和总价格都会增加,最后,用户将totalSum,quantity1,quantity2,quantity3,quantity4返回到main函数,然后继续打印收据,我知道返回主要功能必须做这样的z= getTotalSum()
。但如何多回报? (目前我把它作为0,因为我不知道怎么放)
#include <stdio.h>
int getTotalSum (void); // when user selected product will calculate sum,quantity of each product
int main ()
{
getTotalSum();
return 0;
}
int getTotalSum (void)
{
int code;
float sum=0,totalSum,quantity1=0,quantity2=0,quantity3=0,quantity4=0;
while(1)
{
printf("Enter a product code.(Enter 5 to get total sum)
");
scanf("%d",&code);
switch(code)
{
case 1:
{
quantity1=( quantity1 + 1);
sum=( 45.20 + sum);
printf("Current Sum: RM%.2f
",sum);
break;
}
case 2:
{
quantity2=( quantity2 + 1);
sum=(14.50 + sum);
printf("Current Sum: RM%.2f
",sum);
break;
}
case 3:
{
quantity3=( quantity3 + 1);
sum=(3.45 + sum);
printf("Current Sum: RM%.2f
",sum);
break;
}
case 4:
{
quantity4=( quantity4 + 1);
sum=(7.80 + sum);
printf("Current Sum: RM%.2f
",sum);
break;
}
case 5:
totalSum= sum;
printf("+--------------+--------------------+----------+
");
printf("| Product Code | Rentail Price (RM) | Quantity |
");
printf("+--------------+--------------------+----------+
");
printf("| 1 | 45.20 | %.f |
",quantity1);
printf("+--------------+--------------------+----------+
");
printf("| 2 | 14.50 | %.f |
",quantity2);
printf("+--------------+--------------------+----------+
");
printf("| 3 | 3.45 | %.f |
",quantity3);
printf("+--------------+--------------------+----------+
");
printf("| 4 | 7.80 | %.f |
",quantity4);
printf("+--------------+--------------------+----------+
");
printf("Total Sum: RM%.2f
",totalSum);
return 0;
}
}
}
答案
您可以使用几种方法来return
多个值:
return
astruct
- 写入通过地址传递给函数的几个变量
- 写给
struct
按地址传递给函数 - 写入传递给函数的数组
每个例子如下:
1
struct data
{
int one;
int two;
int three;
int four;
};
struct data getTotalSum(void)
{
...
}
2
void getTotalSum(int *one, int *two, int *three, int *four)
{
...
}
3
struct data
{
int one;
int two;
int three;
int four;
};
void getTotalSum(struct data *d)
{
...
}
4
void getTotalSum(int *array)
{
...
}
以上是关于函数将多值返回到main函数的主要内容,如果未能解决你的问题,请参考以下文章