1.定义一个结构体变量(包括年、月、日)。
计算该日在本年中是第几天,注意闰年问题。
#include<stdio.h>
struct date
{
int _year;
int _month;
int _day;
};
int main()
{
//定义一个日期数组
int days[] = {
0,31,28,31,30,31,30,31,31,30,31,30,31 };
struct date d;
printf("请输入数据:\n");
//输入数据
scanf_s("%d %d %d", &d._year, &d._month, &d._day);
int day = 0;
//循环累加:累加1~month-1所有天数
for (int i = 1; i < d._month; i++) {
day += days[i];
}
//累加当前月的天数
day += d._day;
//判断是否为闰年
if (d._year % 4 == 0 && d._year % 100 != 0 || (d._year % 400 == 0)) {
if (d._month > 2) {
++day;
}
}
printf("这是这一年的第%d天", day);
return 0;
}
2.写一个函数days,实现第几天的计算,由主函数将年、月、日传递给days函数,计算后将日子数传回主函数输出
#include<stdio.h>
struct date
{
int _year;
int _month;
int _day;
};
int days(struct date d)
{
//日期数组
int num[] = {
0,31,28,31,30,31,30,31,31,30,31,30,31 };
int n = sizeof(num) / sizeof(num[0]);
//累加日期,1—month-1
int ret = 0;
for (int i = 0; i < d._month; i++) {
ret += num[i];
}
//累加当前月的天数
ret += d._day;
//判断是否包含2月
if (d._month > 2) {
if ((d._year % 4 == 0 && d._year % 100 != 0) || (d._year % 400 == 0)) {
++ret;
}
}
return ret;
}
int main()
{
struct date d;
printf("请输入日期:\n");
scanf_s("%d %d %d", &d._year, &d._month, &d._day);
printf("这是这年的第%d天", days(d));
return 0;
}
3.编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录。
#define _CRT_SECURE_NO_WARNINGS
#define LEN 10
#include<stdio.h>
struct student
{
int num;
char name[LEN];
int score[3];
};
void print(struct student* stuArr, int num)
{
for (int i = 0; i < num; i++) {
printf("%d %s %d %d %d\n", stuArr[i].num,
stuArr[i].name, stuArr[i].score[0], stuArr[i].score[1], stuArr[i].score[2]);
}
}
int main()
{
struct student stuArr[5];
printf("请输入5名学生的数据:学号 名字 成绩1 成绩2 成绩3\n");
for (int i = 0; i < 5; i++) {
scanf("%d %s %d %d %d", &stuArr[i].num, &stuArr[i].name, &stuArr[i].score[0],
&stuArr[i].score[1], &stuArr[i].score[2]);
}
print(stuArr, 5);
return 0;
}
4.在成绩数组的基础上,编写一个函数input,用来输入5个学生的数据记录
#define _CRT_SECURE_NO_WARNINGS
#define LEN 10
#include<stdio.h>
struct student
{
int num;
char name[LEN];
int score[3];
};
void input(struct student* stuArr, int n) {
//输入学生数据
printf("请输入5名学生的数据:学号 名字 成绩1 成绩2 成绩3\n");
for (int i = 0; i < n; i++) {
scanf("%d %s %d %d %d", &stuArr[i