各位老铁们,大家好,今天由我来为大家分享c语言是什么,以及c语言编程巨蟹座的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
本文目录
C语言,星座匹配问题c语言编写程序,判断输入的日期(月,日)属于哪个星座1)建立两个数组 a[2];b[2]分别存储第一人的月,日,第二人的月,日,从合理性角度分析
月a[0]∈[1,12],a[1]也就是日期根据a[0]决定,a[0]是1,3,5,7,8,12情况下,a[1]不能是31.
a[0]是2的情况下,a[1]不能超过29.如果输入29要减去1(为了后面的日期差计算星座做基础)
2)第一个函数int sum_day(int* a),把刚才输入作为形参传入,按照一定公式计算N月M日是这年的第K天,然后返回这个日期。
3)因为每个星座之隔都是30天(2月按照28来看)。把这个天数,假设是返回的k,那么分类讨论,
第一种,k<19,那么直接知道是摩羯
第二种 switch((k-19)/30){
case 0:水瓶
case 1:双鱼
........
4)匹配的规则,我们已经知道双方的星座了,至于是否合得来用一个二维数组来存放情况
int c[12][12];横坐标的0~11分别表示水瓶~摩羯,纵坐标也是一个道理。比如
a[0][0]就是水瓶配水瓶,c[11][11]就是摩羯配摩羯。如果c[0][0]是存放1,则表示水瓶配水瓶是合适的,如果是0则表示不合适,1还是0由编程人员设置。
3)输出,(k-19)/30就是下标,例如c [(k1-19)/30][,(k2-19)/30],那么这将表示这个坐标的数据,1
表示合适,0表示不合适,k是表示这一年的第k天。
c语言的输出输入是格式化的,printf表示输出,在屏幕上打印出来;scanf表示读入,即把你在屏幕上如果打10,按回车,10就存储到month那个变量里面,%d代表输入一个整数。
还有,要注意,你那个不是c语言……已经是c++了。你看上面定义的那个struct结构体里竟然已经有public……而且还有函数的定义……
Date(int m, int d)是函数的声明,set(m, d)是函数的定义。声明嘛,就是说,我声明有这个函数存在(注意哦,不一定要给出这个函数具体怎样的)~定义嘛,就是我要给出这个函数的具体内容和定义。就比如说,我声明我和张三是好朋友,但我不一定要介绍张三是一个怎样的人。但我定义张三这个朋友的话,我就必须从各方面都介绍他。声明和定义在程序设计中,表示形式往往就不一样了。
函数名是自己起的,爱怎么起都行,只要调用和定义能对上号就好。
学程序一开始慢慢来,不用急。当年我写第一个c语言程序,漏了许多分号,被朋友嘲笑了很久……当时也和你一样,printf什么的一直不会用。不过现在就好了……
c语言的教材的话,国内的鲜有好书,还是推荐你看谭浩强写的,清华大学出版社。确实编的很好,深入浅出,很多抽象概念他老人家都解释得特别好,国内其他教材都比不上。当你学好基础,想进一步学习的话,推荐两本国外教材,C PRIMER PLUS和THE C PROGRAMMING。C PRIMER PLUS比较全,THE C PROGRAMMING是c语言发明者写的,很牛,不过他写法和中国传统思维很不一样,建议看完谭浩强的书之后再去看。
祝你享受编程的快乐~!
补充,代码注释:
#include<stdio.h>
#include<string.h>
//这个程序写得实在不敢恭维,可读性极低。变量名起得很不好,重复太多,很容易引起误解。所以我建议初学者还是去看一些精挑细选的例子,比如谭浩强书上那些真的很不错。我在THU学EE的,这是我亲身经验和个人建议。。
struct Date//定义了一个叫Date的结构体
{
int month, day;
public:
Date(int m, int d)//声明一个叫Date的函数
{
set(m, d);
}
void set(int m, int d);
void constell();//Date结构体底下有一个叫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);//声明一个Date类型的结构体变量(也可以叫对象),叫d(里面包含set,constell等函数,如一开头结构体定义所示)。其作用相当于int i,声明一个整型变量i
d.constell();//调用结构体变量d下constell函数
return 0;
}
如果你还想了解更多这方面的信息,记得收藏关注本站。