scanf

25-字符串

≡放荡痞女 提交于 2020-04-01 02:05:30
字符串是位于双引号中的字符序列 在内存中以"\0"结束,所占字节比实际多一个 注意: (1)可以把一个字符常量赋给一个字符变量,但不能把字符串常量赋给字符变量 (2)C语言中没有字符串变量,可以 用字符数组来存放字符串 1、字符数组的概念   用来存放字符的数组称为字符数组。 2、字符数组定义   形式和前边介绍的数值数组相同    char 数组名[常量表达式] 例如:char ch[5];   字符数组也可以是二维或多维数组。    char 数组名[常量表达式1][常量表达式2];   例如:char ch[2][5]; 即为二维字符数组。 注意:定义字符数组时,应确保数组长度比字符串长度至少多1 3、字符数组初始化 字符数组也允许在定义时作初始化赋值 char ch[4] = {'a', ' ', 'o'}; 赋值后各元素的值为: ch[0] = 'a'; ch[1] = ' '; ch[1] = 'o'; 其中ch[3]未赋值,系统自动赋值为0。 当对全体元素赋初值的时候也可以省去长度说明。例如:   char ch[] = {'f', 'A', ' '}; 这时数组长度自动定为3。 注意:未被使用的元素均被自动初始化为0 4、字符数组的引用   字符数组和普通数组一样,也是通过下标引用。 5、字符串和字符串结束标志   在C语言中没有专门的字符串变量

PTA数组 求矩阵各行元素之和

耗尽温柔 提交于 2020-03-31 10:09:15
#include<stdio.h> int main() { int a[6][6]; int b[6]={0}; int i,m,n,j; scanf("%d %d",&m,&n); for(i=0;i<m;i++)//m行 { for(j=0;j<n;j++)//n列 { scanf("%d",&a[i][j]); b[i]=b[i]+a[i][j];//计算一行的和 } } for(i=0;i<m;i++)//按行输出 { printf("%d\n",b[i]); } return 0; } 来源: https://www.cnblogs.com/jiangzenghui/p/12603119.html

NOIP 前夕 模板整理

时间秒杀一切 提交于 2020-03-30 16:07:33
归并排序: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 int a[1200],s[1200],n; 6 void megre_sort(int l,int r) 7 { 8 if(l==r) return ; 9 int mid=(l+r)/2; 10 megre_sort(l,mid);megre_sort(mid+1,r); 11 int i=l,j=mid+1,k=l; 12 while(i<=mid&&j<=r) 13 { 14 if(a[i]<=a[j]) 15 s[k++]=a[i++]; 16 else 17 s[k++]=a[j++]; 18 } 19 while(i<=mid) 20 s[k++]=a[i++]; 21 while(j<=r) 22 s[k++]=a[j++]; 23 for(int i=1;i<=r;i++) 24 a[i]=s[i]; 25 } 26 int main() 27 { 28 scanf("%d",&n); 29 for(int i=1;i<=n;i++) 30 scanf("%d",&a[i]); 31 megre_sort(1,n); 32 for(int i=1;i<=n;i++) 33 printf

线段树专题

北城余情 提交于 2020-03-30 12:03:51
线段树的风格是跟 NotOnlySuccess 学的 单点更新 :最最基础的线段树,只更新叶子节点,然后把信息用PushUP(int r)这个函数更新上来 1、 hdu1166 敌兵布阵 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。 中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Derek汇报某一段连续的工兵营地一共有多少人,例如Derek问:“Tidy,马上汇报第3个营地到第10个营地共有多少人!”Tidy就要马上开始计算这一段的总人数并汇报。但敌兵营地的人数经常变动,而Derek每次询问的段都不一样,所以Tidy不得不每次都一个一个营地的去数,很快就精疲力尽了,Derek对Tidy的计算速度越来越不满:"你个死肥仔,算得这么慢,我炒你鱿鱼!”Tidy想:“你自己来算算看,这可真是一项累人的工作!我恨不得你炒我鱿鱼呢!”无奈之下,Tidy只好打电话向计算机专家Windbreaker求救,Windbreaker说:“死肥仔,叫你平时做多点acm题和看多点算法书

线段树练习2

随声附和 提交于 2020-03-30 09:21:16
题目传送: http://codevs.cn/problem/1081/ 1081 线段树练习 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 题目描述 Description 给你N个数,有两种操作 1:给区间[a,b]的所有数都增加X 2:询问第i个数是什么? 输入描述 Input Description 第一行一个正整数n,接下来n行n个整数,再接下来一个正整数Q,表示操作的个数. 接下来Q行每行若干个整数。如果第一个数是1,后接3个正整数a,b,X,表示在区间[a,b]内每个数增加X,如果是2,后面跟1个整数i, 表示询问第i个位置的数是多少。 输出描述 Output Description 对于每个询问输出一行一个答案 样例输入 Sample Input 3 1 2 3 2 1 2 3 2 2 3 样例输出 Sample Output 5 数据范围及提示 Data Size & Hint 数据范围 1<=n<=100000 1<=q<=100000 分类标签 Tags 点此展开 代码 #include<cstdio> #include<iostream> using namespace std; #define N 801000 #define mid ((l+r)>>1) #define lc (k<<1) #define

专题训练之树状数组

一曲冷凌霜 提交于 2020-03-30 09:18:20
推荐几个博客:https://blog.csdn.net/int64ago/article/details/7429868搞懂树状数组 https://blog.csdn.net/z309241990/article/details/9615259区间修改 https://blog.csdn.net/whereisherofrom/article/details/78922383完整版+题集 http://www.cnblogs.com/wuyiqi/archive/2011/12/25/2301071.html二进制思想求第k大数 http://www.cnblogs.com/oa414/archive/2011/07/21/2113234.html二分/二进制思想求第k大数 一维树状数组模板(区间求和、单点修改) 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 const int maxn=1e5+10; 6 int bit[maxn],n; 7 8 int lowbit(int x) 9 { 10 return x&(-x); 11 } 12 13 void add(int k,int num) 14 { 15 while ( k<=n ) { 16

C语言实验(三)

て烟熏妆下的殇ゞ 提交于 2020-03-28 17:45:28
第四章分支结构实验 实验项目: 第四章实验设计 实验项目: 4.3.1 if语句的应用 ,4.3.2 switch case的应用 ,4.3.3 switch case嵌套if语句的应用 ,4.3.4 switch case结构嵌套的运用 ,4.3.5 分析程序, 计算器。 姓名:蔡鹏 实验地点:家中  实验时间:2020.03.25 实验目的与要求: 1、 掌握各种形式的if语句语法和使用方法 2、掌握使用算术运算符和运算规则,switch case语句的使用方法 3、掌握switch case结构的嵌套使用,break语句的用法 4、熟练掌握C语言的运算符,即运算符的优先级和结合性、运算规则、运算对象类型等。 实验内容: 1 ·实验练习:4.3.1 if语句的应用 (1)问题的简单描述:读入3个表示箱子长、宽、高的整数值,判断并输出是正方体还是长方体。 (2)实验代码: #include<stdio.h> int main() { int l,w,h; printf("请输入箱子的长、宽、高:\n"); scanf("%d,%d,%d",&l,&w,&h); if(l==w&&w==h&&l==h) printf("该箱子是正方体。\n"); else printf("该箱子是长方体。\n"); return 0; } (3)问题分析:比较长,宽,高用 l==w&&w==h&

C程序第四章实验报告

我的未来我决定 提交于 2020-03-28 17:18:22
C程序设计实验报告 实验项目: 4.3.1:if语句的应用 4.3.2:switch-case的应用 4.3.3:switch-case嵌套if语句的应用 4.3.4:switch-case结构嵌套的应用 4.3.5:分析程序 项目实训:计算器的实现 姓名:钟宗浩 实验地点:家 实验时间:2020.3.26 一、实验目的与要求 1.掌握C语言逻辑值的表示方法(0代表“假”,1代表“真”) 2.学会正确地使用关系表达式和逻辑表达式 3.掌握各种形式的if语句语法和使用方法。if语句中if和else的匹配关系,以及if语句的嵌套。 4.熟练掌握switch语句的语法和使用方法,注意在switch语句中break语句的用法及switch语句的嵌套 二、实验内容 1、实验练习:if语句的应用 1问题的简单描述:读人3个表示箱子长、宽、高的整数值,判断并输出该箱子是正方体还是长方体。 2实验代码: #include<stdio.h> main() { float a,b,c; printf("输入长宽高对应长度"); scanf("%f%f%f",&a,&b,&c); if(a==b&&b==c) printf("该箱子是正方体。\n"); else printf("该箱子为长方体。\n"); } 3问题分析:此处应该注意赋值与数值相等的运算符的区别,判断长、宽、高是否相等。 2、实验练习

CSUST--3.21排位周赛第五场 (全解)

筅森魡賤 提交于 2020-03-28 09:20:24
emmm,题目感觉都是思维题,我没有思维。。。蒟蒻的我等死了 题目链接: http://acm.csust.edu.cn/contest/80/problems 比赛过后无法提交,请到problem中提交 题目说明: A.红黑树(简单贪心) B.厂里吃鸡王(最短路|BFS) C.战域(简单思维) D.摆蔬菜2(简单思维) E.摆蔬菜1(线段树) 红黑树 题目大意:给你一个字符串序列,只含r和b,你有两种操作 1.交换任意两个字母的位置 2.修改任意的字母 你的目标是用最少的步骤使得字符串不存在相邻的字符相同,问最小步骤是多少 Sample Input 5 brbbb Sample Output 1 emmm,题目看起来有点唬人。。。红黑树,nmd乱来,实际上就是个简单的贪心而已,字符串不存在相邻字母相同的情况且该字符串只含2种字符,那么久只有两种情况了 1.rbrbrbrb... 2.brbrbrbr... 我们只需要将这两种情况列出来然后与给定的字符串进行对比看看哪里不一样就好了,计算一下有多少个r的位置不对$nb_r$,有多少个b的位置不对$nb_b$,那么我们可以将r和b互换,同时利用第二个操作将剩下的r或b修改掉,也就是说总的步骤就是$max(nb_r,nb_b)$。然后取两种情况的最小值就行了 以下是AC代码: #include <bits/stdc++.h> using

第二次试验报告

若如初见. 提交于 2020-03-28 04:27:07
C程序设计实验报告 实验项目: 1、if语句的应用 2、switch/case语句的应用 3、switch/case语句嵌套if语句的应用 4、switch/case语句的嵌套应用 5、分析程序 姓名:许鑫琪 实验地点:第一教学楼514教室 实验时间:4月3日 一 、实验目的与要求 1、if语句的应用 掌握C语言逻辑运算和关系运算的规则; 学会正确地使用关系表达式和逻辑表达式; 掌握if-else语句的使用方法。 2、switch/case语句的应用 掌握算术运算符和运算规则 ; 掌握switch/case语句的使用方法 。 3、switch/case语句嵌套if语句的应用 学会正确的使用关系表达式和逻辑表达式; 掌握switch/case 语句语法和使用方法。注意switch语句的控制流程,在switch语句中的break语句的用法; switch/case结构与if/else嵌套结构之间的转换。 4、switch/case语句的嵌套应用 switch/case结构的嵌套使用。 break语句与continue语句的用法。 二、实验内容 1、实验4.3.1: if语句的应用。 2、 问题描述 : 读入3个分别表示箱子长、宽、高的整数值,并判断输出该箱子是正方体还是长方体。 3、实验代码如下: # include <stdio.h> int main () { int l,w,h;