培训第七天

又是新的一天,又是一条充满希望的咸鱼

今天有复习了数组,又学习了数组的相关运算:插入、删除、查找、平移

但还是不完全理解

今天只做出了四道题(其中有一道题还是抄的),不开心啊啊啊

关于数组的运算:

插入:若插入一个数,应把插入位置后的数往后移一位,且要从最右边的数开始,一个一个向右移,利用循环,可以用左边的数代替向右移之前的数,若从插入位置后的数开始往右移,则向右移的数都变成了插入位置后的数。举个栗子,1 2 3,若将数字“2”插入在“1”后,且从“1”开始右移,则第一次移动后,“3”被“2”赋值,“3”变成“2”,再次向右移时,则原来的“3”,也就是现在的“2”向右移,则会输出1 2 2 2,;若从最右边的数开始右移,则“3”向右移以为,成了1 2 3 3,再次右移时,原来的“3”的左边的数,即“2”,赋值给“3”,以此类推,最后会输出1 5 2 3(因为每次右移后都会多一个数,所以循环时上次右移的数的左边的数就会向右移,因此能够实现从左到右依次右移,不知道这么理解对不对)

删除:删除与插入相反,需要由被删除数开始,从左至右依次给左边的数赋值,从而实现删除的目的,然而最后一次循环结束,数字还是以前那么多,因为最右边的数给其左边的数赋值了,而并没有其它数给它赋值,这时需要在循环结束后把原来的数字个数减1,把最右边的数减去(大概是这样吧)

查找:查找相对简单,即让数组中的每一个数都与被查找数比较,若相同,输出下标(具体看题目要求),但查找与bool相结合还是很生疏

平移:书上定义:平移就是删除第一个数,再给最后一个元素赋值(删除具体解释见以上哇啦哇啦),因此需要定义某个字母用来存放第一个值,循环结束后再把这个值赋值给最后一个元素即可实现平移

今天对函数又有了一丢丢了解,若是int函数,需要有返回值,将这个返回值返回到这个函数所在位置,进行所在位置的操作;若是其它函数,不需要有返回值,只要有这个操作步骤就OK

这是今天做的题,需要讲解的东西应该都在上面了

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int M,T,t1,t2,t3,a=0,t=0,b=0;
 6     char ch1;
 7     cin>>M>>T>>t1>>t2>>t3;
 8     for(int i=1;i<=T;i++)
 9     {
10         cin>>ch1;
11         if(ch1=='u') a=t1+t3;
12         if(ch1=='f') a=t2+t2;
13         if(ch1=='d') a=t1+t3;
14         t=t+a;
15         if(t>=M)
16         {
17             b=i;
18             break;
19         }
20         b++;
21         if(i==T)
22         {
23             b=T;
24             break;
25         }
26     }
27     if(t>M) cout<<b-1<<endl;
28     if(t==M) cout<<b<<endl;
29     if(b==T) cout<<b<<endl;
30     return 0;
31 }
 1 #include<iostream>
 2 //#include<cstdio>
 3 using namespace std;
 4 int n,a[9000000];
 5 int shuchu(int i)
 6 {
 7     return a[i];
 8 }
 9 void charu(int i,int k)
10 {
11     for(int j=n;j>=i+1;j--) a[j+1]=a[j];
12     a[i+1]=k;
13     n++;
14 }
15 void shanchu(int i)
16 {
17     for(int k=i;k<n;k++) a[k]=a[k+1];
18     n--;
19 }
20 void chazhao(int i)
21 {
22     bool flag=false;
23     for(int p=1;p<=n;p++)
24         if(a[p]==i)
25             {
26                 cout<<p<<endl;
27                 flag=true;
28                 break;
29             }
30     if(flag==false) cout<<"-1"<<endl;
31 }
32 int main()
33 {
34     //freopen("in","r",stdin);
35     //freopen("out","w",stdout);
36     int m,k;
37     char ch1;
38     cin>>n;
39     for(int i=1;i<=n;i++)
40         cin>>a[i];
41     cin>>m;
42     for(int I=1;I<=m;I++)
43     {
44         int i;
45         cin>>ch1;
46         if(ch1=='1')
47         {
48             cin>>i;
49             cout<<shuchu(i)<<endl;
50         }
51         if(ch1=='2')
52         {
53             cin>>i>>k;
54             charu(i,k);
55         }
56         if(ch1=='3')
57         {
58             cin>>i;
59             shanchu(i);
60         }
61         if(ch1=='4')
62         {
63             cin>>i;
64             chazhao(i);
65         }
66         //for(int J=1;J<=n;J++)
67             //cout<<a[J]<<' ';
68         //cout<<endl;
69     }
70 return 0;
71 }

手机版的博客园用着好别扭,随笔格式就这样吧逼死强迫症

梦想用不过期,深呼吸,再试试

加油!共勉!

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int n,a[110],maxx=-9000000,b=0;
 6     cin>>n;
 7     for(int i=0;i<n;i++)
 8         cin>>a[i];
 9     for(int i=0;i<n;i++)
10     {
11         if(a[i]>maxx)
12         {
13             maxx=a[i];
14         }
15     }
16     for(int i=0;i<n;i++)
17         if(a[i]!=maxx)
18         {
19             cout<<a[i]<<' ';
20             b++;
21         }
22         /*if(a[i]==maxx)
23         {
24             for(int j=i;j<n;j++)
25                 a[j]=a[j+1];
26             n--;
27             i--;
28         }*/
29     if(b==0) cout<<"none"<<endl;
30     /*else
31         for(int i=0;i<n;i++)  cout<<a[i]<<' ';*/
32     return 0;
33 }
 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int a=1,b=1,n;
 6     cin>>n;
 7     for(int i=1;i<n;i++)
 8     {
 9         if(a==1&&b%2==1) b++;
10         else if(b==1&&a%2==0) a++;
11         else if((a+b)%2==0) {a--;b++;}
12         else if((a+b)%2==1) {a++;b--;}
13     }
14     cout<<a<<'/'<<b<<endl;
15     return 0;
16 }

原文地址:https://www.cnblogs.com/zrjl/p/7270050.html