#include <stdio.h>
#define STUDENT_NUM 5
#define PASS_MARK 60
typedef struct {
int num;
char name[20];
int score;
} Student;
void input(Student students[], int n) {
for(int i = 0; i < n; i++) {
printf("请输入第%d个学生的数据(学号 姓名 分数):\n", i+1);
scanf("%d %s %d", &students[i].num, students[i].name, &students[i].score);
} //name是数组,不用&!!!!!
}
void print(Student students[], int n) {
printf("及格学生的数据记录如下:\n");
for(int i = 0; i < n; i++) {
if(students[i].score >= PASS_MARK) {
printf("%d %s %d\n", students[i].num, students[i].name, students[i].score);
}
}
}
int main() {
Student students[STUDENT_NUM];
input(students, STUDENT_NUM);
print(students, STUDENT_NUM);
return 0;
}
#include <stdio.h>
#include <string.h>
// 候选人结构体
typedef struct {
char name[20]; // 候选人名字
int votes; // 候选人票数
} Candidate;
// 冒泡排序函数,按照得票从多到少排序,若票数相同则保持原有顺序
void bubbleSort(Candidate candidates[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (candidates[j].votes < candidates[j + 1].votes) {
// 交换两个候选人信息
Candidate temp = candidates[j];
candidates[j] = candidates[j + 1];
candidates[j + 1] = temp;
}
}
}
}
// 增加票数的函数
void addVote(Candidate candidates[], int n, char *name) {
for (int i = 0; i < n; i++) {
if (strcmp(candidates[i].name, name) == 0) {
candidates[i].votes++;
return; //
}
}
}
int main() {
const int CANDIDATE_COUNT = 3; // 候选人数量
const int VOTE_COUNT = 10; // 选票数量
Candidate candidates[CANDIDATE_COUNT] = {{"zhangxiao", 0}, {"wangman", 0}, {"lisheng", 0}}; // 初始化候选人数组
//结构体统称+具体的结构体名称;想要成为结构体数组,就在结构体后面直接加中括号
char vote[20]; // 用于临时存储每张选票上的候选人名字
// 输入选票内容并统计票数
for (int i = 0; i < VOTE_COUNT; i++) {
scanf("%s", vote); // 读取一张选票上的名字
addVote(candidates, CANDIDATE_COUNT, vote); // 太巧妙了,怎么让输入内容当作函数实参,就是提前设输入内容为一个变量
}
// 使用冒泡排序法对候选人进行排序
bubbleSort(candidates, CANDIDATE_COUNT);
// 输出排序后的结果
for (int i = 0; i < CANDIDATE_COUNT; i++) {
printf("%s %d\n", candidates[i].name, candidates[i].votes); // 输出候选人名字和票数
}
return 0;
}
#include <stdio.h>
// 定义一个结构体来存储日期
typedef struct {
int year;
int month;
int day;
} Date;
// 判断是否为闰年
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
// 计算日期是该年的第几天
int days(Date date) {
int monthDays[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int totalDays = 0;
// 如果年份是闰年,将二月的天数设为29天
if (isLeapYear(date.year)) {
monthDays[1] = 29;
}
// 计算总天数
for (int i = 0; i < date.month - 1; i++) {
totalDays += monthDays[i];
}
totalDays += date.day;
return totalDays;
}
int main() {
Date date;
scanf("%d %d %d", &date.year, &date.month, &date.day);
int dayOfYear = days(date);
printf("%d\n", dayOfYear);
return 0;
}