又是新的一天,又是一条充满希望的咸鱼
今天有复习了数组,又学习了数组的相关运算:插入、删除、查找、平移
但还是不完全理解
今天只做出了四道题(其中有一道题还是抄的),不开心啊啊啊
关于数组的运算:
插入:若插入一个数,应把插入位置后的数往后移一位,且要从最右边的数开始,一个一个向右移,利用循环,可以用左边的数代替向右移之前的数,若从插入位置后的数开始往右移,则向右移的数都变成了插入位置后的数。举个栗子,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 }