| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9725 人关注过本帖
标题:请问如何使自定义的一个函数能返回两个值
取消只看楼主 加入收藏
睂幽冥
Rank: 2
等 级:论坛游民
帖 子:11
专家分:18
注 册:2013-3-17
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:3 
请问如何使自定义的一个函数能返回两个值
我自己根据书上“计算某日是该年的第几天”,改写为“计算某年的某天是几月几日”,在自定义一个函数后不能同时返回月和日,只能定义两个函数分别计算月和日。
我想问一下能不能通过一个函数就能得到月和日。
#include "stdio.h"
int leap(int y)
{
    if(y%4==0&&y%100!=0||y%400==0)
        return 1;
    else
        return 0;
}
int month(int y,int n)
{
    int i;
    int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    int b[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    if(leap(y)==1)
        for(i=0;n>0;i++)
            n-=a[i];
    else
        for(i=0;n>0;i++)
            n-=a[i];
        return i;
}
int day(int y,int n)
{
    int j,d;
    int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    int b[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    if(leap(y)==1)
        for(j=0;n>0;j++)
        {  d=n;
        n-=a[j];}
    else
        for(j=0;n>0;j++)
        {  d=n;
        n-=a[j];}
            return d;
}
void main()
{
    int y,n,i,d;
    printf("请输入年数、天数:\n");
    scanf("%d%d",&y,&n);
    i=month(y,n)-1;
    d=day(y,n);
    printf("%d %d\n",i,d);
}

搜索更多相关主题的帖子: include return 如何 
2013-03-20 23:28
睂幽冥
Rank: 2
等 级:论坛游民
帖 子:11
专家分:18
注 册:2013-3-17
收藏
得分:0 
回复 9楼 azzbcc
我才刚学c语言不到一周啊,老师才教完for,while和do while语句,上面说的基本没几个认识的
2013-03-21 12:28
睂幽冥
Rank: 2
等 级:论坛游民
帖 子:11
专家分:18
注 册:2013-3-17
收藏
得分:0 
我已经把两个函数合并了,不过最后的结果不对,找不到原因了。
#include "stdio.h"
int leap(int y)
{
    if(y%4==0&&y%100!=0||y%400==0)
        return 1;
    else
        return 0;
}
int count(int y,int n,int i,int d)
{
    int c[2]={i,d};
    int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    int b[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    if(leap(y)==1)
        for(i=0;n>0;i++)
        {    d=n;
        n-=a[i];}
    else
        for(i=0;n>0;i++)
        {   d=n;
        n-=a[i];}
        return c[2];
}

void main()
{
    int y,n,i,d,c[2];
    printf("请输入年数、天数:\n");
    scanf("%d%d",&y,&n);
    c[2]=count(y,n,i,d);
    printf("%d %d\n",i,d);
}




最后运行的结果始终是-858993460 1638216


2013-03-21 13:05
睂幽冥
Rank: 2
等 级:论坛游民
帖 子:11
专家分:18
注 册:2013-3-17
收藏
得分:0 
还没学到那一段,这个是自己上网看其他代码弄的,没弄懂形参什么到底怎么用
2013-03-21 13:20
快速回复:请问如何使自定义的一个函数能返回两个值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016731 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved