C语言(七)

//
//  main.c
//  -C-7
//
//  Created by lanqs on 14/12/12.
//  Copyright (c) 2014年 . All rights reserved.
//

#include <stdio.h>
//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]);
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值