c语言编写程序,判断输入的日期(月,日)属于哪个星座?

#include<stdio.h>#include<string.h>structDate{intmonth,day;public:Date(intm,intd){set... #include<stdio.h>
#include<string.h>

struct Date
{
int month, day;
public:
Date(int m, int d)
{
set(m, d);
}
void set(int m, int d);

void constell();
};

void Date::set(int m, int d)
{
//在此最好检查日期是否输入正确...
month=m, day=d;
}

void Date::constell()
{
string c[12][2]={ {"魔蝎座", "水瓶座"}, {"水瓶座", "双鱼座"}, {"双鱼座", "白羊座"},
{"白羊座", "金牛座"}, {"金牛座", "双子座"}, {"双子座", "巨蟹座"},
{"巨蟹座", "狮子座"}, {"狮子座", "处女座"}, {"处女座", "天秤座"},
{"天秤座", "天蝎座"}, {"天蝎座", "射手座"}, {"射手座", "魔蝎座"}
};

int x=month-1;
int y=day/21;
printf("%s",c[x][y]);
}

int main()
{
int month,day;
printf("请输入月份: ");
scanf("%d",&month);
cout<<"请输入日期: ";
scanf("%d",&day);
Date d(month,day);
d.constell();
return 0;
}
这是在网上找到的资料我对其中的几个语句有些小问题希望大侠能解决我的疑惑:
printf("请输入月份: ");
scanf("%d",&month);
print和scanf是什么意思老师没教过还有就是%d是什么意思。然后就是
Date d(month,day);
d.constell();
为什么和Date(int m, int d) ,set(m, d);表示形式不一样不应该是一样的吗?
这样的函数名怎么乱变啊。
,&是取址,会把刚才读入的这个整型数据存入month代表的地址中。
我同学说&是引用就是当month输入一个新的数据就引用它改变month的值。
还有就是Date d(month,day);这个是调用函数所以d(month,day)的函数名d可以随便写对把?d.constell();又是什么意思为什么前面有个d.
&在C++里确实是引用的意思,不过仅限于作为一个参数进行函数调用的时候。函数传入参数的方式一共有三种:
1. 传值
2. 传指针
3. 传引用。
嗯嗯,能分别给个例子我给我讲讲吗。我金币都给你啦。。谢谢大侠帮忙
展开
 我来答
百度网友42e02c5
2011-01-31 · TA获得超过1231个赞
知道小有建树答主
回答量:506
采纳率:0%
帮助的人:539万
展开全部
修改后的程序,是C++写的,对于&的三种案例,马上替你写
#include<string.h>
#include<iostream>
using namespace std;
class Date
{
private:
int month, day;//生日的月日数据
public:
Date(int m, int d)//目的就是保存日月数据
{
set(m, d);
}
void set(int m, int d);//设置日月

void constell();
};

void Date::set(int m, int d)
{
month=m, day=d;
}

void Date::constell()//判断属于哪一个星座
{
char c[12][2][10]={ {"魔蝎座", "水瓶座"}, {"水瓶座", "双鱼座"}, {"双鱼座", "白羊座"},
{"白羊座", "金牛座"}, {"金牛座", "双子座"}, {"双子座", "巨蟹座"},
{"巨蟹座", "狮子座"}, {"狮子座", "处女座"}, {"处女座", "天秤座"},
{"天秤座", "天蝎座"}, {"天蝎座", "射手座"}, {"射手座", "魔蝎座"}
};

int x=month-1;
int y=day/21;
printf("%s",c[x][y]);
}

int main()
{
int month,day;
printf("请输入月份: ");
scanf("%d",&month);
printf("请输入日期: ");
scanf("%d",&day);
Date d(month,day);//d是对象名,可以任意
d.constell();//C++中,调用类的成员函数,实现判断星座的功能
return 0;
}

#include<stdio.h>

int findmax1(int a,int b)//传值案例
{
return a>b?a:b;
}

int findmax2(int *p,int n)//传指针案例
{
int max=-1000000;
for(int i=0;i<n;i++)
if(p[i]>max)
max=p[i];
return max;
}
//传值和传指针一般都不会改变原数据,这里x,y,a[5];里面的数据不会发生变化

void add3(int *p)//传引用,一般会改变原有数据值
{
*p=*p+3;//*p表示p所在地指处的值
}
三种案例:代码和运行结果如下
void main()
{
int x=1,y=2,max,a[5]={1,3,5,3,4};
//传值
max=findmax1(x,y);
printf("传值案例max=%d\n",max);
//传指针
max=findmax2(a,5);
printf("传指针案例max=%d\n",max);
//传引用
add3(&x);//取x的地址,传入函数
printf("传引用案例x=%d\n",x);
}
运行后结果:
传值案例max=2
传指针案例max=5
传引用案例x=4
Press any key to continue
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小鱼1979117
2011-01-31 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1905
采纳率:0%
帮助的人:1107万
展开全部
printf是输出,scanf是输入。

printf("请输入月份: "); 这句话会在屏幕上输出两个引号之间的内容。
scanf("%d",&month); %d表示按一个整型数据读取,&是取址,会把刚才读入的这个整型数据存入month代表的地址中。
Date d(month,day),这个有点像构造函数了,会生成一个Date结构并且把刚刚输入的month和day送进去,可以看到在构造的时候调用的是set,也就是把月和日进行对应的赋值初始化。从做事情内容的角度,前者是进行构造,后者是该构造中调用的方法。
constell是一个计算星座的函数,根据当前的月日来计算并显示对应的星座信息。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Fushaowei77
2017-12-25
知道答主
回答量:4
采纳率:0%
帮助的人:3420
引用Fushaowei77的回答:
你的这个成数值判断了
展开全部
你的这个成数值判断了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duzhanzxs
2011-01-31 · TA获得超过341个赞
知道小有建树答主
回答量:264
采纳率:0%
帮助的人:250万
展开全部
相信会有高手跟你长篇解读的!这个问题太犀利了~~~但是,这个是c++语言的.你不知道printf的意思,这个问题解释起来会比较冗长咯~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式