七C语言,C语言(七)

//

// 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]);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值