sscanf

实时评测系统排名(题解)

给你一囗甜甜゛ 提交于 2020-03-03 21:10:51
题意 :输入数据包含多行,第一行是共有的题数n(1≤n≤12)以及单位罚时m(10≤m≤20),之后的每行数据描述一个学生的信息,首先是学生的用户名(不多于10个字符的字串)其次是所有n道题的得分现状,根据这些学生的得分现状,输出一个实时排名。其中,实时排名显然先按AC题数的多少排,多的在前,再按时间分的多少排,少的在前,如果凑巧前两者都相等,则按名字的字典序排,小的在前。每个学生占一行,输出名字(10个字符宽),做出的题数(2个字符宽,右对齐)和时间分(4个字符宽,右对齐)。名字、题数和时间分相互之间有一个空格。数据保证可按要求的输出格式进行输出。 输入格式: 8 20 GuGuDong 96 -3 40(3) 0 0 1 -8 0 hrz 107 67 -3 0 0 82 0 0 TT 120(3) 30 10(1) -3 0 47 21(2) -2 OMRailgun 0 -99 -8 0 -666 -10086 0 -9999996 yjq -2 37(2) 13 -1 0 113(2) 79(1) -1 Zjm 0 0 57(5) 0 0 99(3) -7 0 思路 :对学生进行排名,需要先计算学生们AC的题数和罚时。先建立一个结构体student,包含名字、AC数量、罚时,每次读入一个字符串str,如果str[0]是’-‘或者’0’,则不需要计算AC数和罚时

C语言 sscanf

╄→尐↘猪︶ㄣ 提交于 2020-02-28 19:41:58
C语言 sscanf #include <stdio.h> int sscanf(const char *str, const char *format, ...); 功能:从str指定的字符串读取数据,并根据参数format字符串来转换并格式化数据。 参数: str:指定的字符串首地址 format:字符串格式,用法和scanf()一样 返回值: 成功:参数数目,成功转换的值的个数 失败: - 1 案例 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> int main(void) { char ch[] = "1+2=3"; int a, b, c; // 将ch中的字符格式,转换为int格式 读取 sscanf(ch, "%d+%d=%d",&a,&b,&c); printf("%d\n", a); printf("%d\n", b); printf("%d\n", c); return 0; } sscanf 使用案例 来源: https://www.cnblogs.com/xiangsikai/p/12378550.html

P1054 求平均值

一曲冷凌霜 提交于 2020-02-10 19:52:20
P1054 求平均值 转跳点: 🐏 1054 求平均值 (20分) 本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内。 输入格式: 输入第一行给出正整数 N (≤100)。随后一行给出 N 个实数,数字间以一个空格分隔。 输出格式: 对每个非法输入,在一行中输出 ERROR: X is not a legal number ,其中 X 是输入。最后在一行中输出结果: The average of K numbers is Y ,其中 K 是合法输入的个数, Y 是它们的平均值,精确到小数点后 2 位。如果平均值无法计算,则用 Undefined 替换 Y 。如果 K 为 1,则输出 The average of 1 number is Y 。 输入样例 1: 7 5 -3.2 aaa 9999 2.3.4 7.123 2.35 输出样例 1: ERROR: aaa is not a legal number ERROR: 9999 is not a legal number ERROR: 2.3.4 is not a legal number ERROR: 7.123 is not a

warning C4996: 'sscanf'

社会主义新天地 提交于 2020-02-05 23:35:05
warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead sscanf函数在VC6.0中使用没有问题,但在VS2010 MFC中使用该函数会有警告:该函数不安全。 将sscanf换成sscanf_s即可,两个函数的用法一样。 来源: CSDN 作者: csdnrecho 链接: https://blog.csdn.net/CSDNrecho/article/details/104188162

sscanf()函数

放肆的年华 提交于 2020-02-04 04:36:39
算法学习之输入…sscanf() #include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> using namespace std; //sscanf()函数 //sscanf的作用: //从一个字符串中读进于指定格式相符的数据。 //利用它可以从字符串中取出整数、浮点数和字符串。 //sscanf和scanf的区别: //scanf是以键盘作为输入源, //sscanf是以字符串作为输入源。 int main() { /* int day,year; char weekday[20],month[20],dtm[100]; strcpy(dtm,"Saturday March 25 1989"); sscanf(dtm,"%s %s %d %d",weekday,month,&day,&year); printf("%s %d,%d=%s\n",month,day,year,weekday); //cout << "Hello world!" << endl; */ //取指定长度的字符串 char str[100]; sscanf("12345","%4s",str); printf("%s\n",str); //格式化时间 int year,month,day,hour

C语言拾遗——sscanf

≯℡__Kan透↙ 提交于 2020-01-08 23:54:29
  今天写题用到了sscanf,怕忘赶紧记录一下 去百度了一下这玩意的函数原型好像是长这样的,微软上扣下来的    int sscanf( const char *buffer, const char *format, [ argument ] ... ); 它的用法和scanf差不多,scanf用于stdin(标准输入),sscanf用于指定区域输入 这是参数的说明:     buffer:存储的数据   format:窗体控件字符串。   argument:可选自变量   locale:要使用的区域设置 测试代码:    1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main(void) 5 { 6 int a; 7 double b; 8 char buf[512] = ""; 9 10 //输出字符串 11 sscanf("123456 ", "%s", buf); 12 printf("%s\n", buf); 13 14 //输出浮点 15 sscanf(buf, "%lf", &b); 16 printf("%lf\n", b); 17 18 //输出整型 19 sscanf(buf, "%d", &a); 20 printf("%d\n", a); 21 22 //特殊输出于scanf类比 23 sscanf(

C语言库函数篇1:sscanf用法

强颜欢笑 提交于 2019-12-14 23:44:40
一、前言 本节,我们将学习C语言库函数sscanf()的使用,使用sscanf可以快速的从复杂字符串中获取自己需要的数据。 二、基础知识 1.简介 sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。 2.函数描述 int sscanf(const char buffer, const char format, [argument]...); 参数: buffer:需要解析的源字符串 format:窗体控件字符串,定义解析字符串的规则,可以是一个或多个 {%[*] [width] [{h | I | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号} argument:可选变量,用来存储按照format规则解析buffer的结果 注: (1) 亦可用于格式中, (即 % d 和 % s) 加了星号 ( ) 表示跳过此数据。 (也就是不把此数据读入参数中) (2) {a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。 (3) width表示读取宽度。 (4) {h | l | I64 | L}:参数的size,通常h表示单字节size,I表示2字节 size,L表示 4字节size(double例外),l64表示8字节size。 (5) type :这就很多了,就是%s,

sscanf简介

随声附和 提交于 2019-12-06 04:26:57
#include<cstdio> #include<cstring> using namespace std; int main() { char str[100]; //用法一:取指定长度的字符串 sscanf("12345", "%4s", str); printf("%s\n", str); //用法二:格式化时间 int year,month,day,hour,minute,second; sscanf("2013/02/13 14:55:34","%d/%d/%d %d:%d:%d",&year,&month,&day,&hour,&minute,&second); printf("time = %d-%d-%d %d:%d:%d\n",year,month,day,hour,minute,second); //用法三:读入字符串 sscanf("12345", "%s", str); printf("str = %s\n",str); //or gets(str1); sscanf(str1, "%s%s", str2, str3); printf("%s %s\n", str2, str3); return 0; //用法四:%*d 和 %*s 加了星号 (*) 表示跳过此数据不读入. (也就是不把此数据读入参数中) sscanf("12345abcd","%*d%s

Read from Console in F#

匿名 (未验证) 提交于 2019-12-03 02:51:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Does anyone know if there is a builtin function for reading from the console likewise to the printfn function? The only method I've seen so far is using System.Console.Read() but it doesn't feel as functional as using a construct like printfn is. 回答1: It is indeed a shame that there is no such built-in function. However, as Brian mentioned in a comment on Benjol's answer, it is possible to build a scanf function yourself. Here's a quick sketch of how one might define a sscanf variant, although only %s placeholders are implemented: open

sscanf in Python

匿名 (未验证) 提交于 2019-12-03 02:11:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I'm looking for an equivalent to sscanf() in Python. I want to parse /proc/net/* files, in C I could do something like this: int matches = sscanf( buffer, "%*d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %*X %*X:%*X %*X:%*X %*X %*d %*d %ld %*512s\n", local_addr, &local_port, rem_addr, &rem_port, &inode); I thought at first to use str.split , however it doesn't split on the given characters, but the sep string as a whole: >>> lines = open("/proc/net/dev").readlines() >>> for l in lines[2:]: >>> cols = l.split(string.whitespace + ":") >>> print len