//
// main.c
// -C-7
//
// Created by lanqs on 14/12/12.
// Copyright (c) 2014年 . All rights reserved.
//
#include
//1.
struct Stu{
int num;
char name[20];
char sex[4];
float score;
};
struct Stu students[3]={{1,"张三" ,"男",80},{2,"小花" ,"女",100},{3,"李四" ,"男",59.5}};
//2.
struct days{
int year;
int month;
int day;
}days1;
//3.
struct student{
int num;
char name[10];
float score[3];
};
struct student xuesheng[5]={
{1,"小张",{60,60,60}},
{2,"小明",{70,70,70}},
{3,"小红",{80,80,80}},
{4,"小李",{90,90,90}},
{5,"小王",{100,100,100}},
};
//4.
struct STU4{
int num;
char name[20];
int sex;
float score;
char shouke[10];
int find;
}STU4_four[3];
int tianshu(int year,int month, int day);
void three(int *num,struct student a[5]);
int main(int argc, const char * argv[]) {
#pragma mark - 1、有3个学生,定义一个结构体包含每个学生信息(编号、姓名、性别、分数),借助条件表达式,编程找出分数最高者;
// float max=0;
// for (int i = 0; i < 3; i ++) {
// if (students[i].score > max) {
// max = students[i].score;
// }
// }
// for (int i = 0; i < 3; i ++) {
// if (students[i].score == max) {
// printf("%d,%s,%s,%.2f",
// students[i].num,students[i].name,students[i].sex,students[i].score);
// }
//
// }
// printf("\n");
#pragma mark - 2、定义一个结构体,描述日期的年月日;1)提示用户输入日期,计算该日在本年中为第几天?2)求今年任意2天的天数差?
// printf("请输入:年 月 日\n");
// scanf("%d%d%d",&days1.year,&days1.month,&days1.day);
scanf("%d%d%d",&year,&month,&day);
// int days =tianshu(days1.year, days1.month, days1.day);
// printf("%d",days);
#pragma mark - 3.某班有5个学生,三门课。分别编写实现以下要求: (1) 写一个函数,输出一名学生的所有信息 (2) 求各门课的平均分; 注:结构体元素有:num,name,score[3](能动态输入信息就更好了)
//
// int a=1;
// three(&a, xuesheng);
// int sum1,sum2,sum3;
// for (int i = 0; i < 5; i ++) {
// sum1 += xuesheng[i].score[0];
// sum2 += xuesheng[i].score[1];
// sum3 += xuesheng[i].score[2];
// }
// printf("\n");
// printf("%d %d %d", sum1/5,sum2/5,sum3/5);
//
//
#pragma mark - 4.4、请利用结构体和共用体 达到如下效果: 请输入信息:
// 姓名:tom
// 性别:(0代表女1代表男)1
// 请选择学生还是老师:(1代表学生,2 代表老师)1
// 请输入学生成绩:90
// 请输入信息:姓名:lily
// 性别:(0代表女1代表男)0
// 请选择学生还是老师:(1代表学生,2 代表老师)2
// 请输入授课内容:iOS
// 请输入信息:姓名:jerry
// 性别:(0代表女1代表男)1
// 请选择学生还是老师:(1代表学生,2 代表老师)1
// 请输入学生成绩:100
//
// 录入信息如下:
// 第1人的信息:编号1:,姓名:tom,性别:1成绩为90
// *************************************************
// 第2人的信息:编号2:,姓名:lily,性别:0授课内容为:ios
// *************************************************
// 第3人第信息:编号3:,姓名:jerry,性别:1成绩为100
// *************************************************\
int num=0; //编号
for (int i = 0; i < 3; i ++) {
//当输入为学生时
num++;
printf("请选择学生还是老师:(1代表学生,2 代表老师)");
scanf("%d",&STU4_four[i].find);
if (STU4_four[i].find == 1) {
//编号;
STU4_four[i].num = num;
//请输入学生成绩:90
printf("请输入学生成绩:");
scanf("%f",&STU4_four[i].score);
//请输入信息:姓名:lily
printf("请输入信息:姓名:");
scanf("%s",STU4_four[i].name);
//性别:(0代表女1代表男)0
printf("性别:");
scanf("%d",&STU4_four[i].sex);
}else if (STU4_four[i].find == 2){
STU4_four[i].num = num;
// 请输入授课内容:iOS
printf("请输入授课内容:iOS");
scanf("%s",STU4_four[i].shouke);
// 请输入信息:姓名:jerry
printf("请输入信息:姓名:");
scanf("%s",STU4_four[i].name);
// 性别:(0代表女1代表男)1
printf("性别:0代表女1代表男)");
scanf("%d",&STU4_four[i].sex);
}
}
for (int i = 0; i < 3; i ++) {
if (STU4_four[i].find == 2) {
printf("编号:%d ,姓名:%s ,性别: %d, 授课为 %s",
STU4_four[i].num,
STU4_four[i].name,
STU4_four[i].sex,
STU4_four[i].shouke);
}else {
printf("编号:%d ,姓名:%s ,性别: %d, 成绩为 %f",
STU4_four[i].num,
STU4_four[i].name,
STU4_four[i].sex,
STU4_four[i].score);
}
printf("\n");
}
printf("\n");
return 0;
}
int tianshu(int year,int month, int day){
int days=0;
//1,2,3,4,5,6,7,8,9,10,11,12
int m[12] = {0,0,31,30,31,30,31,31,30,31,30,31};
m[0] = day;
if (month > 2) {
if ((year % 4 == 0 && year % 100 == 0) || year % 400 == 0) {
m[1] = 29;
}else{
m[1] = 28;
}
}else{
m[1]=31;
}
for (int i = 0 ; i < month ; i ++) {
days += m[i];
}
return days;
}
void three(int *num , struct student a[5]){
for (int i = 0; i < 5; i ++) {
if (*num == a[i].num) {
printf("%d %s %.1f %.1f %.1f", a[i]. num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2]);
}
}
}