標籤:c++ iostream
(一)輸入一行電報文字,將字母變成其下一字母(如’a’變成’b’……’z’變成’a’其它字元不變)
(1)#include <iostream>using namespace std;int main(){ int i=0; char a[i]; while(cin>>a[i]) { if(a[i]>='a'&&a[i]<'z') { a[i]=(int)a[i]+1; cout<<a[i]; } else if(a[i]=='z') cout<<'a'; else cout<<a[i]; i++; } return 0;}方法(2)#include <iostream>#include <cstdio>#include <cstring>using namespace std;int main(){ int i=0; char a[100]; gets(a); int len=strlen(a); while (a[i]!='\0') { if (a[i]>='a'&&a[i]<'z') a[i]+=1; else if (a[i]=='z') a[i]='a'; i++; } for(i=0; i<len; i++) cout<<a[i]; return 0;}
(二)求一個3×3矩陣對角線元素之和。
#include <iostream>using namespace std;int main(){ int a[3][3],i,j; int s1,s2; for(i=0;i<3;i++) for(j=0;j<3;j++) cin>>a[i][j]; s1=a[0][0]+a[1][1]+a[2][2]; s2=a[0][2]+a[1][1]+a[2][0]; cout<<s1<<" "<<s2<<endl; return 0;}
(三)用篩法求N(<1000)之內的素數。
(1)#include <iostream>using namespace std;int main(){ int n,i,j; cin>>n; for(i=1; i<n; i++) { for(j=2;j<i;j++) { if(i%j==0) break; } if(j==i) cout<<i<<endl; } return 0;}(2)#include <iostream>#include <cmath>using namespace std;bool isprimer(int );int main(){ int n,i; cin>>n; for(i=2; i<n; i++) { if(isprimer(i)) cout<<i<<" "<<endl; }}bool isprimer(int n){ int r; for (r=2; r<=sqrt(n); ++r) if(n%r==0) break; if(r>sqrt(n)) return n;}
(四)有n人圍成一圈,順序排號。從第1個人開始報數(從1到3報數),凡報到3的人退出圈子,問最後留下的是原來的第幾號的那位。
#include <iostream> using namespace std; int main() { int n,i,m,k,*p; cin>>n; int a[n]; p=a; //指標p指向num for(i=0;i<=n;i++) *(p+i)=i+1; ////以1至n為序給每個人編號 i=0; //i為每次迴圈時計數變數 k=0; //k為按1,2,3報數時的計數變數 m=0; //m為退出人數 while(m<n-1) //當退出人數比n-1少時(即未推出人數大於1時) 執行迴圈體 { if(*(p+i)!=0) k++; //將推出的人的編號置為0 if(k==3) { *(p+i)=0; k=0; m++; } i++; if(i==n)i=0; //報數到尾後,i恢複為0 } while(*p==0)p++; cout<<*p<<endl; return 0; }
(五)寫一個判斷素數的函數,在主函數輸入一個整數,輸出是否是素數的訊息。
#include <iostream>#include <cmath>using namespace std;int is_prime(int n){ int r; if(n==1) return 0; else { for (r=2; r<=sqrt(n); ++r) if(n%r==0) break; if(r>sqrt(n)) return 1; }}int main(){ int flag,n; int is_prime(int); cin>>n; flag=is_prime(n); if(flag==1) cout<<"prime"<<endl; else cout<<"not prime"<<endl; return 0;}
心得體會:每天都有人在進步,我努力讓自己能夠成為他們中的一員!每天積累一些代碼,總會對自己有協助的。繼續加油!
C++刷題四