大一C语言作业题目3&4

7-3 计算职工工资

给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。

输入格式:

输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。

输出格式:

按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。

输入样例:

3
zhao 240 400 75
qian 360 120 50
zhou 560 150 80

输出样例:

zhao 565.00
qian 430.00
zhou 630.00

正确代码: 

#include 
#include 

struct employee {
    char name[10];
    float basicmoney;
    float floatmoney;
    float outmoney;
};

int main() {
    int N;
    scanf("%d", &N);

    struct employee emp[N];
    float realmoney[N];
    for (int i = 0; i < N; i++) {
        scanf("%s %f %f %f", emp[i].name, &emp[i].basicmoney, &emp[i].floatmoney, &emp[i].outmoney);
        realmoney[i] = emp[i].basicmoney + emp[i].floatmoney - emp[i].outmoney;
    }
    for (int i = 0; i < N; i++) {
        printf("%s %.2f\n", emp[i].name, realmoney[i]);
    }
    return 0;
}

 注意事项:

1、在struct Student 的时候,要创建float的工资,而不是int。

精度? 

大一C语言作业题目3&4_第1张图片

C语言 —— float单精度浮点型与double双精度浮点型的使用-CSDN博客 

大一C语言作业题目3&4_第2张图片

单精度和双精度问题_单精度和双精度举例-CSDN博客


2、再次提醒 scanf加&,printf加\n

3、要么,就是stu[i].money;要么,就是money[i]


7-4 学生成绩排序

假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩,定义一个能够表示学生信息的结构类型。输入n(n<50)个学生的成绩信息,按照学生的个人平均分从高到低输出他们的信息。如果平均分相同,按输入的先后顺序排列。

输入格式:

输入一个正整数n(n<50),下面n行输入n个学生的信息,包括:学号、姓名、三门课程成绩(整数)。

输出格式:

输出从高到低排序后的学生信息,包括:学号、姓名、平均分(保留两位小数)。

输入样例:

3
101 Zhang 78 87 85
102 Wang 91 88 90
103 Li 75 90 84

输出样例:

102,Wang,89.67
101,Zhang,83.33
103,Li,83.00

正确代码:

#include
#include

struct Student{
	int id;//
	char name[20];//
	int A;
	int B;
	int C;
	float avg;
};
int main(){
	int N;
	scanf("%d",&N);
	
	struct Student stu[N];
	
	for(int i = 0 ; i 

 注意事项:

1、

没有特别说明,id用int。

为确保name的各种安全问题,用20。

avg是属于Student的一个属性。

struct Student{
	int id;//
	char name[20];//
	int A;
	int B;
	int C;
	float avg;
};

2、avg要除以3.00,除以3.00或者3.0都可以。但一定是要有小数点,因为avg是float类型。

for(int i = 0 ; i 

3、

冒泡排序

因为后面输出的不只是avg,因此不可以用int temp来储存avg,而是用Student这个类将所有的信息储存起来。

因为是从大到小排序,因此是<号

for(int i = 0 ; i

4、

看题目,,,是用逗号隔开的!!!!!!

记得写return 0;

for(int i = 0;i

你可能感兴趣的:(C语言,c语言,开发语言,笔记,算法)