C++刷题三

/* 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;
}

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

时间: 2024-08-11 01:24:45

C++刷题三的相关文章

OJ刷题之《输入三个整数,按由小到大的顺序输出》

题目描述 输入三个整数,按由小到大的顺序输出.分别使用指针和引用方式实现两个排序函数.在主函数中输入和输出数据. 输入 三个整数 输出 由小到大输出成一行,每个数字后面跟一个空格.由指针方式实现. 由小到大输出成一行,每个数字后面跟一个空格.由引用方式实现. 样例输入 2 3 1 样例输出 1 2 3 1 2 3 提示 主函数已给定如下,提交时不需要包含下述主函数 /* C++代码 */ int main() { void sort1(int *,int *,int *); void sort2

【leetcode刷题笔记】Longest Consecutive Sequence

Given an unsorted array of integers, find the length of the longest consecutive elements sequence. For example,Given [100, 4, 200, 1, 3, 2],The longest consecutive elements sequence is [1, 2, 3, 4]. Return its length: 4. Your algorithm should run in

COGS2642 / Bzoj4590 [Shoi2015]自动刷题机

Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 906  Solved: 321 Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机--一种可以自动AC题目的神秘装置.自动 刷题机刷题的方式非常简单:首先会瞬间得出题目的正确做法,然后开始写程序,每秒,自动刷题机的代码生成模 块会有两种可能的结果: A.写了x行代码. B.心情不好,删掉了之前写的y行代码.(如果y大于当前代码长度则相当于全部删除.) 对于每

刷题计划

我很后悔这一年来被我浪费过的每分每秒,我已经不想再浪费时间了. 平时不好好刷题还想着打比赛? 今年的目标就是刷完紫书第七章的搜索,第八章的贪心,第九章的dp,然后每次的cf补题尽量补到div2的DE题,如果时间有剩余,就学AC自动机等一些数据结构吧. 第一阶段:紫书ch7-ch9  时间11月末-12月31号 第二阶段  训练指南选择性的补充知识点,同时打一些5个小时比赛+补题  时间1月-2月 第三阶段  区域赛真题组队训练

【leetcode刷题笔记】Max Points on a Line

Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. 题解: 思路比较简单,每条直线都可以表示为y=kx+b,所以对于任意三点,如果它们共线,那么它们中任意两点的斜率都相等. 所以就遍历points数组,对其中的每一个元素计算它和位于它后面的数组元素的斜率并保存在一个hashmap中. 这个hashmap的键就是两点构成直线的斜率,值就是和当前元素po

比较好的刷题网站推荐

1.Leetcode鼎鼎大名的Leetcode,据不完全统计在上面被刷过的题可以围绕地球三圈.(没说赤道哈,就是这么严谨.)总之,很多国内外的码农在上面刷题.难度从easy到hard都有,而且覆盖面极广.现在还增加了数据库和shell,相匹配的论坛也可以多看看.很锻炼和国外码农沟通的能力,对于以后去混Github也有好处. 特点:各种语言支持很广泛,题型覆盖很广,测试数据集较弱. 2.Codility同样一家著名的国外刷题网站.和Leetcode不同,它是专门帮各大软件公司笔试用的,只是副业提供

【leetcode刷题笔记】Sort List

Sort a linked list in O(n log n) time using constant space complexity. 题解:实现一个链表的归并排序即可.主要分为三部分: 1.找到中点并返回的函数findMiddle; 2.归并函数merge; 3.排序函数sortList. 数组的findMiddle函数非常容易实现,链表就有一点tricky了.首先设置两个指针,一个slow初始化为head,一个fast初始化为head.next,然后slow一次走一步,fast一次走两

BZOJ 4590: [Shoi2015]自动刷题机 二分答案

4590: [Shoi2015]自动刷题机 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1056  Solved: 380[Submit][Status][Discuss] Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机--一种可以自动AC题目的神秘装置.自动 刷题机刷题的方式非常简单:首先会瞬间得出题目的正确做法,然后开始写程序,每秒,自动刷题机的代码生成模 块会有两种可能的结果: A.写了x行代

国内有哪些好的刷题网站?

http://www.zhihu.com/question/25574458 Luau Lawrence,Data Mining 弱鸡 / [email protected] 温梦强.石一帆.知乎用户 等人赞同 - Welcome To PKU JudgeOnline 北京大学的Online Judge.POJ上面的题目有点老了,但好处是做的人多,经典算法题多,解题报告也多,适合上手.- ZOJ :: Home 浙江大学的Online Judge.ZOJ用的不多,但为数不多的几次体验好像都还可以