1 #include <iostream>
2 #include <cstring>
3 using namespace std;
4 /**
5 一维数组
6 int a[10];
7 1.类型int[]
8 2.长度10
9 3.下标
10 */
11 int main(){
12 /*
13 样例:
14 输入:6
15 输入:1 3 2 3 1 2
16 输入:1
17 输出:2
18 */
19 int n,b,c = 0;
20 cin >> n;
21 int a[n];
22 memset(a,0,sizeof(a));
23 for(int i = 0;i < n;i++){
24 cin >> a[i];
25 }
26 cin >> b;
27 for(int i = 0;i < n;i++){
28 if(a[i] == b){
29 c++;
30 }
31 }
32 cout << c << endl;
33 /*
34 解题思路:
35 1、输入
36 2、算法
37 3、输出
38 */
39 return 0;
40 }
1 #include <iostream>
2 #include <cstring>
3 #include <cmath>
4 #include <cstdio>
5 #include <algorithm>
6 using namespace std;
7 /**
8 数组逆序输出
9 输入:5
10 输入:8 6 5 4 1
11 输出:1 4 5 6 8
12 swap(当前这一项,后面一项)
13 */
14 int main(){
15 int n;
16 int a[n];
17 memset(a,0,sizeof(a));
18 cin >> n;
19 //输入
20 for(int i = 0;i < n;i++){
21 cin >> a[i];
22 }
23 //算法 ,j <= n/2指的是总共需要交换n/2次能完成。
24 for(int j = 0;j <= n/2;j++){
25 //a[n-i-1]指的是a[j]所对称的那一项
26 swap(a[j],a[n - j - 1]);
27 }
28 //输出
29 for(int k = 0;k < n;k++){
30 cout << a[k] << " ";
31 }
32 /*
33 a[1] a[n - i + 1]
34 a[0] a[n - i - 1]
35 a[1] a[5 - 1 - 1]
36 最后一项:a[n - j + 1]
37
38 a[0] , a[5 - 0-1]
39 a[1] a[5 - 1]
40 最后一项 a[n - j - 1]
41 */
42
43 // 8 6 5 4 1
44 // 1 4 5 6 8
45 // a[n-n] a[n - (n - 1)] a[n - 1]
46 //
47 // n = 7
48 // 3 = n/2
49 // 1 2 3 4 5 6 n = 6
50 // 3 = n/2
51
52
53 return 0;
54 }
1 #include <iostream>
2 #include <cstring>
3 #include <cmath>
4 #include <cstdio>
5 #include <algorithm>
6 using namespace std;
7 /**
8 校门外的树
9 某校门外长度为L的马路上有一排树,每两棵相邻树之间的间隔都是
10 1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,
11 另外一端在L的位置;数轴上的每个整数点,即0,1,2,3,....,L,都有
12 一棵树。
13 由于马路上有一些区域要用来建造地铁。这些区域用它们在数轴上的起始点
14 和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间
15 可能有重合的部分。现在要把这些区域中的树(包含区域端点处的两棵树)
16 移走。你的任务是计算将这些树都移走后,马路上还有多少棵树?
17 输入:一行两个整数L(1 <= L <= 10000)和M(1 <= M <= 100) ,
18 L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的
19 M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和
20 终止点的坐标。
21 对于20%的数据,区域之间没有重合的部分;对于其他数据,区域之间有重合的部分。
22 输出:
23 一行。这一行只包含一个整数,表示马路上剩余的树。
24 测试样例#1:
25 样例输入:
26 500 3
27 150 300
28 100 200
29 470 471
30 样例输出:
31 198
32 */
33 int main(){
34 int a[10001];
35 int l,m,x,y,s = 0;
36 //输入
37 scanf("%d %d",&l,&m);
38 //初始状态将a数组中树的标记位变成1
39 for(int i = 0;i <= l;i++){
40 a[i] = 1;//将标志位的值变成1
41 }
42 //算法
43 for(int i = 1;i <= m;i++){
44 scanf("%d %d",&x,&y);//输入建造地铁的区间范围
45 //算出要移走树并且将标志位变成0
46 for(int j = x;j <= y;j++){
47 a[j] = 0;//被挖走的树标志位0
48 }
49 }
50 //如果树没有被挖走,那么就统计留下的树有多少棵
51 for(int i = 0;i <= l;i++){
52 if(a[i] == 1){
53 s++;
54 }
55 }
56 cout << s << endl;
57 return 0;
58 }
1 #include <iostream>
2 #include <cstring>
3 #include <cmath>
4 #include <cstdio>
5 #include <algorithm>
6 using namespace std;
7 /**
8 在一个序列(规定下标从1开始)中查找一个给定的值,输出第一次出现的位置。
9 输入 :
10 第一行包含一个正整数n(1 <= n <= 10000),表示序列中元素的个数
11 第二行包含n个整数,依次给出序列的每个元素,相邻两个整数之间用单个
12 空格隔开。元素的绝对值不能超过10000.
13 第三行包含一个整数x,为需要查找的特定值x。x的绝对值不超过10000.
14 输出:
15 若序列中存在x,输出x第一次出现的下标;否则输出-1。
16 样例输入:
17 5
18 2 3 6 7 3
19 3
20 样例输出:
21 2
22 */
23 int main(){
24 //有n棵树,i表示树的头上的标号(下标),
25 //k是否存在这样的一棵树,-1不存在。
26 //x表示比较的条件
27 int n,i = 0,k = -1,x;
28 //一、输入
29 cin >> n;
30 int a[n];//数组a表示每棵树的高度
31 //把每一棵树的高度输入到数组a中
32 for(int j = 1;j <= n;++j){
33 cin >> a[j];
34 }
35 cin >> x;
36 //算法
37 //循环必须要在树的棵树之内并且满足条件的这棵树还没出现
38 while(i <= n && k < 0){
39 i++;
40 if(a[i] == x){//其中只要有一棵树的高度等于比较值x
41 //不再集训循环
42 k = i;
43 }
44 }
45 //输出
46 cout << i << endl;
47 return 0;
48 }
1 #include <iostream>
2 #include <cmath>
3 #include <cstdio>
4 #include <cstring>
5 #include <algorithm>
6 using namespace std;
7 //排除最高数以后的和
8 int main(){
9 int n;
10 cin >> n;
11 int a[n];
12 for(int i = 0;i < n;i++){
13 cin >> a[i];
14 }
15 sort(a + 0,a + n);
16 //打桩测试
17 for(int i = 0;i < n;i++){
18 cout << a[i] << " ";
19 if(a[i] != a[n - 1]){
20 sum += a[i];
21 }
22 }
23 cout << sum;
24 return 0;
25 }
1 #include <iostream>
2 #include <cstring>
3 #include <cmath>
4 #include <cstdio>
5 #include <algorithm>
6 using namespace std;
7 /**
8 整数序列去重
9 */
10 int main(){
11 int n;
12 cin >> n;
13 int a[n];
14 bool s[n];
15 memset(a,0,sizeof(a));
16 memset(s,true,sizeof(s));
17 for(int i = 0;i < n;i++){
18 cin >> a[i];
19 }
20 //去重
21 for(int i = 1 ;i <= n;i++){
22 if(s[i]){
23 for(int j = i + 1;j <= n;j++){
24 if(a[i] == a[j]){
25 s[j] = false;
26 }
27 }
28 }
29 }
30 //输出
31 for(int i = 0;i < n;i++){
32 if(s[i])
33 cout << a[i] << " ";
34 }
35 return 0;
36 }