码迷,mamicode.com
首页 > 编程语言 > 详细

C++刷题三

时间:2015-04-12 09:13:36      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:c++   class   二维数组   namespace   

/* Copyright (c) 2014, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作者:陈丹妮
 * 完成日期:2015年 4 月 11 日
 * 版 本 号:v1.0
 */
(一)
写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
#include <iostream>
using namespace std;
void zhuangzhi(int a[3][3])
{
    int i,j;
    for(i=0; i<3; i++)
        for(j=0; j<i; j++)
        {
            int t;
            t=a[j][i];
            a[j][i]=a[i][j];
            a[i][j]=t;
        }
}

int main()
{
    int a[3][3];
    int i,j;
    for(i=0; i<3; i++)
        for(j=0; j<3; j++)
            cin>>a[i][j];
    zhuangzhi(a);
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}

(二)要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译为"Glmre"。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string c;
    cin>>c;
    for(int i=0;c[i]!='\0';i++)
    {
        int d;
        d=((int)c[i])+4;
        cout<<(char)d;
    }
    return 0;
}

(三)输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。

#include <iostream>
using namespace std;
void input(int a[],int n)
{
    for(int i=1; i<=n; i++)
        cin>>a[i];
}
void handle(int a[],int n)
{
    int max=a[1],min=a[n],i;
    int t=1,p=n;
    for(i=1; i<=n; i++)
    {
        if(a[i]>max)
        {
            max=a[i];
            t=i;
        }
    }
    for(i=1; i<=n; i++)
    {
        if(a[i]<min)
        {
            min=a[i];
            p=i;
        }
    }
    int t1,t2;
    t1=a[t];
    a[t]=a[n];
    a[n]=t1;
    t2=a[p];
    a[p]=a[1];
    a[1]=t2;
}
void output(int a[],int n)
{
    for(int i=1; i<=n; i++)
        cout<<a[i]<<" ";
}
int main()
{
    const int n=10;
    int a[n];
    input(a,n);
    handle(a,n);
    output(a,n);
    return 0;
}

四)用筛法求之N内的素数。
(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;
}

五)
一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。它在第N次落地时反弹多高?共经过多少米?保留两位小数

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int n;
    double m;
    cin>>m>>n;
    double s=m;
    while(n>0)
        {
            n--;
            m=m/2;
            s=s+m*2;
        }
    cout<<setiosflags(ios::fixed)<<setprecision(2)<<m<<" "<<s-2*m<<endl;
    return 0;
}

心得体会:即使繁琐的事再多,也要尽量完成自己所坚持的事!继续加油!

C++刷题三

标签:c++   class   二维数组   namespace   

原文地址:http://blog.csdn.net/nufangdongde/article/details/45000603

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!