大二寒假刷题随笔

7.5 学生成绩排序

假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩,定义一个能够表示学生信息的结构类型。输入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<iostream>
#include<algorithm>
using namespace std;
struct stu{
    int id;
    char name[50];
    int a,b,c;
    double avg;
}s[55];
bool cmp(stu x,stu y){
    return x.avg>y.avg;
}
int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>s[i].id>>s[i].name>>s[i].a>>s[i].b>>s[i].c;
        s[i].avg=(s[i].a+s[i].b+s[i].c)/3.0;//注意除以3.0而不是3,否则得不到有效浮点数
    }
    sort(s,s+n,cmp);
    for(int i=0;i<n;i++){
    printf("%d,%s,%.2f\n",s[i].id,s[i].name,s[i].avg);
    }
    return 0;
}

存在问题:

1.第一遍用c语言写的时候发现自己字符串知识掌握的非常差,然后翻开以前的书籍去恶补字符串输入输出的细节还有指针
2.电脑用vs和vc6都会出现the file does not exist,一直编译不了,很烦,也弄不懂debug里面exe文件找不到是什么原因,浪费了很多时间,最后还在用devc++,一直在停留在这个问题不能解决,尝试过很多方法
3.这也是我提交的第一个c++的程序,发现c++真的比c简单快捷多了
开始我没有掌握c++,这是我的漏洞,打算买本书学习一下c++,不能一直使用scanf printf,感觉c++在解决实干问题时逻辑很省事,没有那么费劲

总结

感觉寒假没写什么代码,我本就薄弱的基础变得更加岌岌可危,现在看着pta上面的题目有点发懵,感觉已经无从下手了,而且很多细节都不记得了,贼烦
还有宏和指针学的很差,贼烦。。。。。。。感觉写代码都不自信了,是不是需要沉下心来看几本书。哎

原文地址:https://www.cnblogs.com/husiyu/p/12273279.html

时间: 2024-08-29 18:02:11

大二寒假刷题随笔的相关文章

你必须非常努力,才能看起来毫不费力(大二寒假)

现在是大二寒假了,我还在写这些算法水题,真的好惭愧,感觉自己除了绩点还能看以外,什么技术都没有学好.托福,GRE还在艰难的准备中,也没什么整块的时间去准备英语,只能平时带着看看英语.这个寒假,尽自己最大努力去吧浙大的数据结构题目写完,还有斯坦福那个pdf上的题目也要全部写完,这是最基本的. Java用sedgewick的那本书多看看,能用Java写一点总是好的. 下学期去找我们学院的老师做做科研,看他们能不能带我一下. Fighting for the future. 为了大四能够申请到CMU或

大二寒假 之 丢失的13天

各大网站,各大平台,信息爆炸, 每天到处乱逛,却没有拿得出手的本领. 从20号回家到现在,已经13天了,回顾这些天,真的很颓废,现在把这些天做的事情整理一下,算是一个小记录吧. 1.看了电影<敦刻尔克>,<银翼杀手2049>,重温了82年的<银翼杀手>. 之前看过一个2017年值得一看的外语电影榜单,排名榜首的便是<敦刻尔克>,第二便是高斯林哥哥主演的<银翼杀手2049>,当然还有<寻梦环游记>,<摔跤吧,爸爸>,<

寒假刷题之普通之变形课

呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒语是以a开头b结尾的一个单词,那么它的作用就恰好是使A物体变成B物体. Harry已经将他所会的所有咒语都列成了一个表,他想让你帮忙计算一下他是否能完成老师的作业,将一个B(ball)变成一个M(Mouse),你知道,如果他自己不能完成的话,他就只好向Hermione请教,并且被迫听一大堆好好学习的道理. Input测试数

寒假刷题之普通之红与黑

Description - 题目描述 有个铺满方形瓷砖的矩形房间,每块瓷砖的颜色非红即黑.某人在一块砖上,他可以移动到相邻的四块砖上.但他只能走黑砖,不能走红砖. 敲个程序统计一下这样可以走到几块红砖上. Input - 输入 多组测试用例.每组数组开头有两个正整数W和H:W与H分别表示 x- 与 y- 方向上瓷砖的数量.W和W均不超过20. 还有H行数据,每行包含W个字符.每个字符表示各色瓷砖如下. '.' - 一块黑砖 '#' - 一块红砖 '@' - 一个黑砖上的人(一组数据一个人) 输入

noi寒假刷题之旅

 1.1编程基础之输入输出(10题) Hello, World! #include<iostream> using namespace std; int main() { cout<<"Hello, World!"<<endl; return 0; } 输出第二个整数 #include<iostream> using namespace std; int main() { int a,b,c; cin>>a>>b&

noi寒假刷题之旅_ 1.8编程基础之多维数组(25题)

»1.8编程基础之多维数组(25题) 上次编辑的时候忘记保存了,前面几题就算了趴懒得 08:矩阵加法 #include<iostream> #define MAX 105 using namespace std; int table[MAX][MAX]; int main() { int n,m; cin>>n>>m; for(int i=0;i<n;++i)for(int j=0;j<m;++j)cin>>table[i][j]; int t;

Leetcode Notes - 刷题随笔

200. Numbers of Islands *********************** class Solution { // 首先定义四个方向的向量,方便计算矩阵上下左右的位置 final static int [][]dirs = {{-1, 0}, {1, 0}, {0, -1}, {0, 1} }; public int numIslands(char[][] grid) { // corner case if (grid == null || grid.length == 0

大雪菜 — LeetCode刷题打卡活动第三期——week2 DFS专题(部分代码)

转自   https://www.bilibili.com/video/av34962180?t=1435&p=2 77,给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合. vector<vector<int> >ans; vector<vector<int>> combine(int n, int k) { vector<int>way; dfs(way,1,n,k); return ans; } void

寒假刷题之普通之最小差

Description - 题目描述 给定若干位十进制数,你可以通过选择一个非空子集并以某种顺序构建一个数.剩余元素可以用相同规则构建第二个数.除非构造的数恰好为0,否则不能以0打头. 举例来说,给定数字0,1,2,4,6与7,你可以写出10和2467.当然写法多样:210和764,204和176,等等.最后一对数差的绝对值为28,实际上没有其他对拥有更小的差. Input - 输入 输入第一行的数表示随后测试用例的数量. 对于每组测试用例,有一行至少两个不超过10的十进制数字.(十进制数字为0