C++刷题四

来源:互联网 发布:173VPN网络加速器 编辑:程序博客网 时间:2024/06/10 01:40

(一)输入一行电报文字,将字母变成其下一字母(如’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;}


心得体会:每天都有人在进步,我努力让自己能够成为他们中的一员!每天积累一些代码,总会对自己有帮助的。继续加油!

0 0
原创粉丝点击