scanf

What does scanf REMOVES from input after scanning?

匆匆过客 提交于 2020-02-23 07:09:32
问题 I have gone through many questions and blogs and books, but I guess I'm just not able to relate things properly. What does scanf do after scanning? It reads everything except space, tab and newline, but what does it do to newline?? I'm unable to remove newline any way after scanning input. For example, consider this as input:- 5 Abcdefgh Now, I have scanned 5 as integer, scanf("%d", &i); but how do I remove '\n' in order to read everything ahead one character at a time? I want to use:- while(

变量常量

与世无争的帅哥 提交于 2020-02-22 22:45:01
1.变量就是放数据的地方 变量定义的一般形式: <变量类型名称><变量名称>; 一行里可以定义多个变量 如:int price; int amount; int price,amount; 变量的名字有一个专业术语叫标识符, 标识符有自己的规则:只能由字母、数字和下划线组成,数字不能开头,C语言中的关键字(有的地方叫保留字)不可以用做标识符 2.C语言是一种有类型的语言,数据类型表示在变量中可以存放什么样的数据,变量中只能存放指定类型的数据 程序运行过程中不能改变变量的类型 3.常量 int change=100-price; 会变的是变量如price,change.不会变的是常量如,直接写在程序里的叫直接量如100 更好的方式,是定义一个常量,而不是把100直接写在那 const int AMOUNT=100;//这也是C99写法 之后直接用int change=AMOUNT-price; 这样做有很多好处,不如别人看到100不知道是什么,但是看到AMOUNT就会知道是金额 用有意义的名字,更容易让别人理解你的这个数字是什么 第二个好处,容易修改,定义在前面很容易就能找到AMOUNT const是一个修饰符,放在一个变量前面,表示这个变量不能被修改,一定要被赋初值,初始化完之后不可再做任何赋值的操作 一般对一个const的变量,变量名全大写,用来强调它是const的

2019-2020 ACM-ICPC Latin American Regional Programming Contest

▼魔方 西西 提交于 2020-02-22 22:40:39
开学前最后一场训练了,努力搞了个8题,还算可以。就是这场题没多少我能做的,只切了两道题。 题目链接: https://codeforces.com/gym/102428 D: solver:czq 题意就是二维平面上有n颗恒星,每颗恒星有一个固定亮度。问:是否存在一条直线,从平面的一端扫到另一端,满足:对于任意两颗恒星S和T,如果S亮度大于T,那么S一定在T之前或者跟T一起同时被直线扫到。只需输出Y或N。 构造一下Y和N的例子你就会发现,对于所有亮度不同的恒星,从亮度高的恒星指向亮度低的恒星,这样我们就得到若干条向量。若答案为Y,那么必然存在一对向量,平行且方向相反,而且如果我们把所有的向量极角排序,这对平行的向量位置相邻。 1 /* basic header */ 2 #include <bits/stdc++.h> 3 /* define */ 4 #define ll long long 5 #define pb emplace_back 6 #define mp make_pair 7 #define eps 1e-8 8 #define lson (curpos<<1) 9 #define rson (curpos<<1|1) 10 /* namespace */ 11 using namespace std; 12 /* header end */ 13 14

PTA天梯赛L2

无人久伴 提交于 2020-02-22 20:30:37
L2-001 紧急救援 题意:就是给你一张n<500的图;让你求最短路径,最短路条数,以及路径; 做法,先用dijkstra求最短路,然后dfs找最短路条数,以及点权的最大值; 一般dfs不就可以解决这个问题吗,像n皇后求次数,注意回溯即可; 那如何dfs确定这条路是最短路径呢?贪心思想,枚举每一个邻居,如果满足 dis[y.v]==dis[x]+y.w 说明当前邻居 通过这个点可以一直是最短路径,这样dfs下去,如果碰到d就return掉; 主要是没有想到用dfs求最短路径条数,然后注意回溯即可; #include<bits/stdc++.h> using namespace std; #define rep(i,j,k) for(int i=(int)j;i<=(int)k;i++) #define per(i,j,k) for(int i=(int)k;i>=(int)j;i--) #define pb push_back #define pf push_front #define fi first #define se second typedef long long ll; typedef unsigned long long ull; typedef long double ldb; typedef double db; const db PI=acos(-1.0);

PTA练习Day02

馋奶兔 提交于 2020-02-22 13:54:53
PTA练习Day02 练习2-14 求奇数分之一序列前N项和 (15分) 练习2-15 求简单交错序列前N项和 (15分) 练习2-17 生成3的乘方表 (15分) 练习2-18 求组合数 (15分) 习题2-1 求整数均值 (10分) 习题2-2 阶梯电价 (15分) 习题2-3 求平方与倒数序列的部分和 (15分) 习题2-4 求交错序列前N项和 (15分) 习题2-5 求平方根序列前N项和 (15分) 习题2-6 求阶乘序列前N项和 (15分) 练习2-14 求奇数分之一序列前N项和 (15分) 本题要求编写程序,计算序列 1 + 1/3 + 1/5 + … 的前N项之和。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。 输入样例 : 23 输出样例 : sum = 2.549541 # include <stdio.h> int main ( ) { int n , i , j = 1 ; double sum = 0 ; scanf ( "%d" , & n ) ; for ( i = 1 ; i <= n ; i ++ , j + = 2 ) { sum + = 1.0 / j ; } printf ( "sum = %lf" , sum ) ;

c语言进阶6-指针

我与影子孤独终老i 提交于 2020-02-22 02:43:27
指针是c语言的一个重要组成部分 是c语言的核心、精髓所在,用好指针可以在c语言编程中起到事半功倍的效果。一方面,可以提高程序的编译效率和执行速度以及实现动态的存储分配;另一方面,使用指针可使程序更灵活,全球表示各种数据结构,编写高质量的程序。 指针是c语言显著的优点之一,其使用起来十分灵活而且能提高某些程序的效率,但是如果使用不当则很容易造成系统错误。许多程序“挂死“往往都是由于错误地使用指针造成的 一、 地址与指针 系统的内存就好比是带有编号的小房间,如果想使用内存就需要得到房间编号。图1定义了一个整型变量i,整型变量需要4个字节,所以编译器为变量i分配的编号为1000~1003. 什么是地址? 地址就是内存区中对每个字节的编号 ,如图1所示的1000/1001/1002和1003就是地址,为了进一步说明来看图2. 内存地址 内容 1000 0 变量i 1004 1 变量j 1008 2 1012 3 1016 4 1020 5 图2所示的1000、1004等就是内存单元的地址,而0、1就是内存单元的内容,换种说法就是基本整型变量i在内存中的地址从1000开始。因为基本整型占4个字节,所以变量j在内存中的起始地址为1004,变量i的内容是0. 那么指针又是什么呢?这里仅将 指针看作是内存中的一个地址,多数情况下,这个地址就是内存中另一个变量的位置,如图3所示。

C语言I博客作业08

血红的双手。 提交于 2020-02-21 21:46:22
这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 C语言I博客作业08 我在这个课程的目标是 熟悉代码的编程,设计出一个小程序,能够正常运行并且能够拥有一定用户 这个作业在哪个地方具体方面帮助我实现目标 熟悉使用while和do-while结构解决问题 参考文献 C语言课本 百度百科 1.PTA实验作业 1.题目名(韩信点兵) 对于给定的正整数N,求它的位数及其各位数字之和。 输入格式: 输入在一行中给出一个不超过10 ​9 ​​的正整数N。 输出格式: 在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。 1.1.1数据处理 数据表达:使用了整形变量:n, digits, count 数据处理:使用了scanf.printf.while语句, 使用的表达式有count+=n%10, n/=10, digits++ 伪代码: 定义变量 n, digits=0, count=0. while(n!=0) 使用while语句,当n不等于0时进行下面的循环 count+=n%10 取余 n/=10 digits++ 累加位数 输出 位数和各位数之和 1.1.2实验截图代码 1.1.3造测试数据 输入数据 输出数据 说明 321 3 6 有3位,各位数之和为6 124 3 7 有3位,各位数之和为7 1256 4 14 有4位,各位数之和为14 12345 5 15

scanf(格式控制字符串,参数地址表)

孤街浪徒 提交于 2020-02-21 11:16:44
# include <stdio.h> # include <stdlib.h> int main ( ) { //scanf(格式控制字符串,参数地址表); int a , b ; //Ane request:空格符 is space character scanf ( "%d %d" , & a , & b ) ; printf ( "a=%d,b=%d" , & a , & b ) ; //Two request:逗号 is space character input:3 4 out put a=3,b=39 scanf ( "%d,%d" , & a , & b ) ; printf ( "a=%d,b=%d" , & a , & b ) ; //Three request:input date 字符串"a="和"b="原样输入,即input a=12,b=34 scanf ( "a=%d,b=%d" , & a , & b ) ; printf ( "a=%d,b=%d" , & a , & b ) ; //Four demand input date限定以下格式1234 同时输出结果a=12,b=34 scanf ( "%2d%2d" , & a , & b ) ; printf ( "a=%d,b=%d" , a , b ) ; //Five require

C - 壮志难酬

一世执手 提交于 2020-02-21 08:01:11
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char a[100]= {'0'}; int i,l,n,t,j; scanf("%d",&t); while(t--) { scanf("%s",a); scanf("%d",&n); l=strlen(a); for(i=0; i<l; i++) { if(a[i]=='.') //将数组中的元素限定在小数点后 { if(l>(i+n)) printf("%c\n",a[i+n]); else printf("0\n"); } } } return 0; } 来源: https://www.cnblogs.com/chenlong991223/p/10102710.html

最大化最小值

穿精又带淫゛_ 提交于 2020-02-19 21:54:29
POJ3258 题意: 有一堆牛要过河,河的长度是 L,河中间有N个石头,牛只能踩着石头过河,问去掉M个石头后(去掉这M个石头的方式是随机的),牛能走的石头间距最小值中,最大的那一个是多少,输出距离。 开始和最后的两块石头不能搬走。 解法: 最大化石头间距的最小值 二分距离,从左到右遍历所有的石头(包括首尾),在判断距离之内不停的搬走石头,当石头总数大于M的时候即是错误。 代码如下: 1 int L, M, N; 2 int pos[MAXN]; 3 4 bool C(int x) { 5 int sum = 0, last = 0; 6 for (int i = 1; i <= N + 1; i++) { 7 if (pos[i] - pos[last] < x) { 8 sum++; 9 if (sum > M) { 10 return false; 11 } 12 } else { 13 last = i; 14 } 15 } 16 return true; 17 } 18 19 void jojo() { 20 sort(pos, pos + N + 1); 21 int lb = 0, ub = L + 1; 22 while (ub - lb > 1) { 23 int mid = (ub + lb) / 2; 24 if (C(mid)) { 25 // cout <