您的位置:首页 > 其它

统计同成绩学生人数

2018-03-05 16:26 239 查看

Problem Description
读入N名学生的成绩,将获得某一给定分数的学生人数输出。

Input
测试输入包含若干测试用例,每个测试用例的格式为

第1行:N
第2行:N名学生的成绩,相邻两数字用一个空格间隔。
第3行:给定分数

当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。

Output
对每个测试用例,将获得给定分数的学生人数输出。

Sample Input
3
80 60 90
60
2
85 66
0
5
60 75 90 55 75
75
0

Sample Output
1
0
2

#include <iostream>
#include<algorithm>
#include<string.h> using namespace std; int main() { //bool pass = false; int N,ggrade,countG=0; int grade[100];
memset(grade,0,sizeof(grade)); cin >> N; for(int i=0;i<N;i++) cin >> grade[i]; cin >> ggrade; sort(grade,grade+N); for(int j=0;j<N;j++){ if(grade[j]<ggrade) continue; else if(grade[j]== ggrade){ //pass = true; countG++; continue; } else break; } //if(pass == true) cout << countG<<endl; //else // count << 0 << endl; return 0; }

发现写的方法和别人不一样。。。别人遍历或者用map写的。。。emmm呵呵了

其他两种写法看别人的例子吧:题目1018:统计同成绩学生人数

 

总结:memset()函数及其作用

 

超级推荐memset函数,用来初始化超级方便,头文件是<string.h>  

memset(结构体/数组名 , 用于替换的ASCII码对应字符 , 前n个字符 );

memset(结构体/数组名 , "用于替换的字符“ , 前n个字符 );

函数解释:将s中的前n个字节用ch替换并且返回s

函数作用:在一段内存块中填充某一个给定的值,常用于较大的对结构体和数组的清零操作,一般用在对定义的字符串进行初始化为‘0 ’或‘/0’。

 

例:char a[100];

memset(a, '/0', sizeof(a));

    memset可以方便的清空一个结构类型的变量或数组。

如:

struct sample_struct
{
char csName[16];
int iSeq;
int iType;
};

 

对于变量:
struct sample_strcut stTest;

一般情况下,清空stTest的方法:

stTest.csName[0]='/0';
stTest.iSeq=0;
stTest.iType=0;

用memset就非常方便:
memset(&stTest,0,sizeof(struct sample_struct));

 

如果是数组:

struct sample_struct TEST[10];

memset(TEST,0,sizeof(struct sample_struct)*10);

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐