Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 1572|回复: 11
打印 上一主题 下一主题

C programming Function 疑问

[复制链接]

26

主题

0

好友

154

积分

高级会员

Rank: 3Rank: 3Rank: 3

跳转到指定楼层
1#
发表于 2015-3-27 03:45 PM |只看该作者 |倒序浏览
请问各位大神
有没有办法让function definition return 2个value?
因为在 printf("\n     Total room charges : RM%.2lf",roomCharges);那一排原本应该是 total room charges for %.0lf : RM%.2lf , i,roomCharges.

有没有办法把i也return回来呢?
这是c programming

#include<stdio.h>
float calculateCharges (char);
int main()
{
    char roomCode;
    double roomCharges,r=0.00;

        printf("\t\tSeri Anjung Motel\n\n");
    printf("  Room Code\tRoom Type\tRoom Rate (RM)\n");
    printf("  =========\t=========\t==============\n");
    printf("      A\t\tExecutive\t    560.00\n");
    printf("      B\t\tSuite\t\t    451.60\n");
    printf("      C\t\tDeluxe\t\t    334.50\n");
    printf("      D\t\tSuperior\t    245.80\n\n");
   
    r++;
        printf("\n  %.0lf. Enter room code(A/B/C/D or X to end):",r);
        scanf(" %c", &roomCode);
       
    roomCharges=calculateCharges(roomCode);
    printf("\n     Total room charges : RM%.2lf",roomCharges);
    scanf(" %c", &roomCode);
}

float calculateCharges (char roomCode)
{
    char Breakfast;
        double total=0.00, additionPerson=0.00, RoomRate=0.00, rc=0.00,i=0.00,r=1.00;
       
   
        while(roomCode != 'X' && roomCode != 'x' ){
        if(roomCode == 'A' || roomCode == 'a')
                RoomRate = 560.00;
        else
                if(roomCode == 'B' || roomCode == 'b')
                        RoomRate = 451.60;
                else
                        if(roomCode == 'C' || roomCode == 'c')
                                RoomRate = 334.50;
                        else
                                if(roomCode == 'D' || roomCode == 'd')
                                        RoomRate = 245.80;
       
    printf("     Additional breakfast(Y/N):");
        scanf(" %c", &Breakfast);

        if(Breakfast=='Y' || Breakfast=='y')
    {
        printf("     Number of additional person(s):");
        scanf(" %lf", &additionPerson);
        total = (additionPerson*20)+RoomRate;    }   
          else if(Breakfast=='N' || Breakfast =='n')
                  total=RoomRate;
               
        printf("\n     Room charges : Rm%.2lf\n",total);
                rc=rc+total;
                r++;
                printf("\n  %.0lf. Enter room code(A/B/C/D or X to end):",r);
            scanf(" %c", &roomCode);
                i++;
        }
   
    return rc;
}




收藏收藏0

57

主题

20

好友

1万

积分

无敌名嘴

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

2#
发表于 2015-3-27 04:28 PM |只看该作者
本帖最后由 Irvine1987 于 2015-3-27 04:34 PM 编辑

struct retstruct {
    int a;
    int b;
};
struct retstruct myfunc(void) {
    struct retstruct r;
    r.a = 1;
    r.b = 2;
    return r;
}

int main()
{
    struct retstruct r;
    r = myfunc();
    printf("a=%d  b=%d\n", r.a, r.b);
}


已有 1 人评分人气 收起 理由
永恒的眼泪 + 10

总评分: 人气 + 10   查看全部评分

回复

使用道具 举报

26

主题

0

好友

154

积分

高级会员

Rank: 3Rank: 3Rank: 3

3#
发表于 2015-3-27 05:58 PM |只看该作者
请问这个要加在哪个部分?
这是关于data structure的吗?
小弟好像还没学到@@


回复

使用道具 举报

2

主题

0

好友

66

积分

中级会员

Rank: 2Rank: 2

4#
发表于 2015-3-27 11:47 PM |只看该作者
不介意的话把你的assignment question放上来。


回复

使用道具 举报

26

主题

0

好友

154

积分

高级会员

Rank: 3Rank: 3Rank: 3

5#
发表于 2015-3-28 12:11 AM |只看该作者
construct a function that will accept the room code , read the breakfast option , read the number of additional person(s) , if any , then calculate and returnthe room charges .

Function declaration : float calculateCharges (char);
大概是这样,大部分是拿之前的练习来modified的
这个只是要我们加个function进去

我的老师说不用用到struct就能做到了@@
他说在main set里有looping,在那边拿就可以了==?


回复

使用道具 举报

2

主题

0

好友

66

积分

中级会员

Rank: 2Rank: 2

6#
发表于 2015-3-28 01:35 AM |只看该作者
那请问你的r和i是干嘛用的? 你要Loop?


回复

使用道具 举报

2

主题

0

好友

66

积分

中级会员

Rank: 2Rank: 2

7#
发表于 2015-3-28 01:35 AM |只看该作者
如果可以,把你完整的题目放上来,不然很难帮到你


回复

使用道具 举报

2

主题

0

好友

66

积分

中级会员

Rank: 2Rank: 2

8#
发表于 2015-3-28 01:44 AM |只看该作者
大概整理了你的code,如果没有X,就会一直继续直到user打x,然后就会出summary一天到底赚了多少?是这样吗?


回复

使用道具 举报

5

主题

1

好友

3264

积分

本站名嘴

Rank: 11Rank: 11

9#
发表于 2015-3-28 02:13 PM |只看该作者
如果用struct 来 return 多个values , 还没有学到的话.
可以用global variable吧?


回复

使用道具 举报

26

主题

0

好友

154

积分

高级会员

Rank: 3Rank: 3Rank: 3

10#
发表于 2015-3-28 07:28 PM |只看该作者
它参杂了很多之前的题目,不过就像 @karkit1990 说的,是要type in room code 直到enter x , 然后display 多少个room :RM多少 。 eg,3room : RM 100.00

r是题目要求因为要display如下:
1. Enter room code (A/B/C/D or X to end ) :A , 那个最前面的1.是r
i 是多少个room


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-11-18 04:31 PM , Processed in 0.115038 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部