标题:请帮忙看一下 为什么无法得出结果
只看楼主
商烟渺
Rank: 1
等 级:新手上路
帖 子:14
专家分:2
注 册:2016-10-29
结帖率:75%
 问题点数:0 回复次数:5 
请帮忙看一下 为什么无法得出结果
//file name:Julian.cpp
//Calendar conversion
#include <iostream>
using namespace std;
char *Julian(int year,int day);
int main()
{int day,year;
cout<<"请输入年份:"<<endl;
cin>>year;
cout<<"请输入天数:"<<endl;
cin>>day;
Julian(year,day);
return 0;
}
char *Julian(int year,int day)
{char*date=new char[7];
char *month[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
int i;
int dayin[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if((year%4==0&&year%100!=0)||(year%400==0)) ++dayin[1];
for(i=0;day<dayin[i];++i){day-=dayin[i];
strcpy(date,month[i]);}
date[3]=' ';
if(day>9){ date[4]=day/10+'0';
date[5]=day%10+'0';
date[6]='\0';
}
else {date[4]=day+'0';
date[5]='\0';
}
return date;
}
程序如上 但却没有办法返回一个值,就直接结束了
麻烦大神们看一下该怎么改

搜索更多相关主题的帖子: conversion include return file 
2016-11-28 13:47
xufan
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:232
专家分:804
注 册:2008-10-20
得分:0 
cout << Julian(year,day) << endl;

~~~~~~我的明天我知道~~~。
2016-11-28 18:39
夏天的飞鸟
Rank: 2
来 自:海底两万里
等 级:论坛游民
威 望:1
帖 子:24
专家分:70
注 册:2016-11-4
得分:0 
你返回的是指针: 要输出数组的话
int * p = Julian(year, day);
for(int i = 0, i < 7, i++)
{
    cout << p[i] << " ";
}
cout << endl;
2016-11-28 19:51
yangwawa
Rank: 2
等 级:论坛游民
威 望:3
帖 子:15
专家分:67
注 册:2016-11-26
得分:0 
回复 2楼 xufan
你这个应该不行吧,返回的时候那个数组已经被释放了吧。。。。
2016-11-28 23:28
夏天的飞鸟
Rank: 2
来 自:海底两万里
等 级:论坛游民
威 望:1
帖 子:24
专家分:70
注 册:2016-11-4
得分:0 
回复 4楼 yangwawa
你没有delete就不会被释放,因为是new的,而且他还忘记在main里面delete了,程序大的话内存泄漏。
2016-11-28 23:36
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:0 
回复 楼主 商烟渺
最好把你希望返回的指针改成一个实参。函数不要返回值。执行完毕之后再在函数外访问该实参,看是否完成了修改
2016-11-29 13:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-471700-1-1.html




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

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