【PTA-C语言】编程练习4 - 数组Ⅰ

  • 如果代码存在问题,麻烦大家指正 ~ ~
  • 有帮助麻烦点个赞 ~ ~

    编程练习4 - 数组Ⅰ(1~7)

    • 7-1 评委打分(分数 10)
    • 7-2 组合数的和(分数 10)
    • 7-3 找不同(分数 15)
    • 7-4 利用二分查找搜寻所有待查找数据(分数 15)
    • 7-5 判断上三角矩阵(分数 10)
    • 7-6 方阵循环右移(分数 15)
    • 7-7 TicTacToe游戏--胜负判定(分数 15)

7-1 评委打分(分数 10)

作者 翁恺
单位 浙江大学

班级里要搞智力竞赛啦!同学们都踊跃参加。进入最后决赛的是10个同学,随着一道道题目的出示,有时是1号选手得分,有时是5号选手得分,每次答对者得10分,最后结果如何呢?

输入格式:
第一行有十个整数,表示十位同学的初始分。第二行一个整数n,表示有n道题竞赛。
接下去有n行,每行有一个数字x,x表示本次可以加分的选手序号(每次答对者得10分)。

输出格式:
10个同学最终的得分值,每两位同学之间有一个空格。

输入样例:

10 0 0 0 10 10 0 0 0 10
3
1
10
1

输出样例:

30 0 0 0 10 10 0 0 0 20

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

#include<stdio.h>
int main()
{
    int i, j, n, b;
    int a[10];
    for(i=0; i<10; i++)
        scanf("%d", &a[i]);
    scanf("%d", &n);
    for(i=0; i<n; i++) {
        scanf("%d", &b);
        a[b-1] += 10;
    }
    for(i=0; i<10; i++)
        if(i==9)
            printf("%d", a[i]);
        else
            printf("%d ", a[i]);
    return 0;
}

7-2 组合数的和(分数 10)

作者 陈越
单位 浙江大学

给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。

输入格式:
输入在一行中先给出 N(1 < N < 10),随后一行给出 N 个不同的非 0 个位数字。数字间以空格分隔。

输出格式:
输出所有可能组合出来的2位数字的和。

输入样例:

3
2 8 5

输出样例:

330

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

#include<stdio.h>
int main()
{
    int i, j, n, sum=0;
    int a[100];
    scanf("%d", &n);
    for(i=0; i<n; i++)
        scanf("%d", &a[i]);
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            if(j!=i)
                sum += a[i]*10+a[j];
    printf("%d\n", sum);
    return 0;
}

7-3 找不同(分数 15)

作者 胡伟平
单位 广西科技大学

这是一个签到题,非常简单。一群网友在网上在玩游戏,看谁是最与众不同的,每一个人都单独写一个数字,然后依次上交,谁的数据没有和其他人重复,谁就赢了,如果有很多人都与众不同,那么第一个做到的才是真正的与众不同。

输入格式:
输入是一个测试用例,首先给出网友个数N,之后依次给出N个正整数,给出的正整数和N都不超过10的5次方。

输出格式:
对每一组输入,输出与众不同的那个数,如果没有,输出None

输入样例1:
在这里给出一组输入。例如:

8 1 2 3 4 4 5 3 1

输出样例1:
在这里给出相应的输出。例如:

2

输入样例2:
在这里给出一组输入。例如:

8 1 2 3 4 4 3 2 1

输出样例2:
在这里给出相应的输出。例如:

None

代码长度限制
16 KB
时间限制
200 ms
内存限制
64 MB

参考代码

#include <stdio.h>
int main()
{
    int i, j, N, m=0, n=0;
    scanf("%d", &N);
    int a[N];
    for(i=0; i<N; i++)
        scanf("%d", &a[i]);
    for(i=0; i<N; i++) {
        for(j=0; j<N; j++)
            if(a[i]==a[j] && i!=j)
                m++;
        if(m==0){
            printf("%d",a[i]);
            break;
        }
        n++;
        m=0;
    }
    if(n==N)
        printf("None");
    return 0;
 }

7-4 利用二分查找搜寻所有待查找数据(分数 15)

作者 Sun Jun
单位 武汉理工大学

利用二分法在一个有N(N≤20)个元素的有序数列中查找指定值y。找到y后,先输出查找次数,再输出其在数组中对应的下标。若数列中存在多个y,将所有y的位置按下标序号顺序输出;
否则输出“not found”.

输入格式:
输入在第1行中给出1个不大于20的数N。在第2行给出N个数(升序),以空格分隔。最后在第3行给出待查找数据y。

输出格式:
若数列中存在y:先输出查询次数,在其后每行以格式“位置:k”,输出一个位置值。
若数列中没有y:输出“not found”。

输入样例 1:

10
34 56 78 87 87 87 87 112 520 888
87

输出样例 1:

查找次数1
位置:3
位置:4
位置:5
位置:6

输入样例 2:

10
34 56 78 87 87 87 87 112 520 888
80

输出样例 2:

not found

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

#include<stdio.h>
int main()
{
    int n, b, i, j=0, l=0, h, mid, sum=1;
    int a[20];
    scanf("%d", &n);
    h = n-1;
    for (i=0; i<n; i++)
        scanf("%d", &a[i]);
    scanf("%d", &b);
    while(l<=h) {
        mid = (l+h)/2;
        if(b==a[mid])
            break;
        else if(b<a[mid])
            h = mid-1;
        else
            l = mid+1;
        sum++;
    }
    for(i=0; i<n; i++)
        if(a[i]==b)
            if(j==0) {
                j=1;
                printf("查找次数%d\n", sum);
                printf("位置:%d\n", i);
            } else
                printf("位置:%d\n", i);
    if(j==0)
        printf("not found");
    return 0;
}

7-5 判断上三角矩阵(分数 10)

作者 C课程组
单位 浙江大学

上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。

本题要求编写程序,判断一个给定的方阵是否上三角矩阵。

输入格式:
输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:
每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。

输入样例:

3
3
1 2 3
0 4 5
0 0 6
2
1 0
-8 2
3
1 2 3
1 4 5
0 -1 6

输出样例:

YES
NO
NO

鸣谢中水七局机电安装分局喻春桥补充数据!

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

#include<stdio.h>  
int main()
{  
    int T, m, n, i, j, flag;
    int a[10][10];
    scanf("%d", &T);
    for(m=0; m<T; m++) {
        flag = 1;
        scanf("%d", &n);
        for(i=0; i<n; i++)
            for(j=0; j<n; j++) {
                scanf("%d", &a[i][j]);
                if(i>j && a[i][j]!=0)
                    flag=0;
            }
        if(flag)
            printf("YES\n");  
        else   
            printf("NO\n");
    }
    return 0;
}

7-6 方阵循环右移(分数 15)

作者 颜晖
单位 浙大城市学院

本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。

输入格式:
输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n阶的方阵。

输出格式:
按照输入格式输出移动后的方阵:即输出n行,每行n个整数,每个整数后输出一个空格。

输入样例:

2 3
1 2 3
4 5 6
7 8 9

输出样例:

2 3 1  5 6 4  8 9 7

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

#include <stdio.h>
int main()
{
    int i, j, n, m;
    int a[10][10];
    scanf("%d %d", &m, &n);
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            scanf("%d", &a[i][j]);
    m%=n;
    for(i=0; i<n; i++) {
        for(j=0; j<n; j++)
            printf("%d ", a[i][(n-m+j)%n]);
        printf("\n");
    }
    return 0;
}

7-7 TicTacToe游戏–胜负判定(分数 15)

作者 李民
单位 武汉理工大学

井字棋是一种在3x3格子上进行的连珠游戏,和五子棋比较类似,由于棋盘一般不画边框,格线排成井字故得名。

游戏规则:由分别代表O和X的两个游戏者轮流在格子里留下标记。由最先在任意一条直线上成功连接三个标记的一方获胜。(摘抄自百度百科)

在这里插入图片描述

读入一个3X3的二维数组,数组元素为’X’表示下X,元素为’O’表示下O,数组元素为’.'(英文符号“点”)表示未下棋,现编写程序进行当前胜负的判断,如果X方胜,则显示"X win!“,如果O方胜,则显示"O win!”,如果无人获胜,则显示"No one win!"。

输入格式:
读入一个3X3的二维数组,数组元素为’X’表示下X,元素为’O’表示下O,数组元素为’.'(英文符号“点”)表示未下棋。

输出格式:
若X方胜,则显示"X win!“;若O方胜,则显示"O win!”;若无人获胜,则显示"No one win!"。

输入样例1:

X.O
OX.
O.X

输出样例2:

X win!

输入样例2:

O.O
XX.
X..

输出样例2:

No one win!

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

参考代码

#include <stdio.h>
int main()
{
    char a[4][4];
    int i, flag1=0, flag2=0;
    for(i=0;i<3;i++)
        scanf("%s",a[i]);
    for(i=0;i<3;i++)
        if((a[i][0]==a[i][1])&&(a[i][1]==a[i][2])&&(a[i][0]==a[i][2]))
            if(a[i][0]!='.')
                if(a[i][0]=='X')
                    flag1=1;
                else
                    flag2=1;
    for(i=0;i<3;i++)
        if((a[0][i]==a[1][i])&&(a[1][i]==a[2][i])&&(a[0][i]==a[2][i]))
            if(a[0][i]!='.')
                if(a[0][i]=='X')
                    flag1=1;
                else
                    flag2=1;
    if(((a[0][0]==a[1][1])&&(a[1][1]==a[2][2])&&(a[0][0]==a[2][2]))||((a[0][2]==a[1][1])&&(a[1][1]==a[2][0])&&(a[0][2]==a[2][0])))
        if(a[1][1]!='.')
            if(a[1][1]=='X')
                flag1=1;
            else
                flag2=1;
    if(flag1&&(flag2==0))
        printf("X win!\n");
    else if((flag1==0)&&flag2==1)
        printf("O win!\n");
    else
        printf("No one win!\n");
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/224473.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux shell编程学习笔记33:type 命令

目录 0 引言1 type 命令的功能和格式 1.1 type命令的功能1.2 type 命令的格式2 type命令用法实例 2.1用type命令查看shell内置命令&#xff08;以echo命令为例&#xff09;2.2 用type命令查看别名&#xff08;以ls命令为例&#xff09;2.3 用type命令同时查看shell内置命令和别…

Kubernetes实战(八)-防止k8s namespace被误删除

1 背景 运维新同学在预发环境操作删除pod的时候&#xff0c;不知道什么原因把kubectl delete pod命令敲成了kubectl delete ns pre把预发环境删了&#xff0c;几十个模块&#xff0c;将近一个小时才恢复。幸亏是测试环境啊&#xff0c;如果是生产可以可以跑路了。 2 解决方案…

Redis核心知识点总结

1.Redis介绍 Redis 是 NoSQL&#xff0c;但是可处理 1 秒 10w 的并发&#xff08;数据都在内存中&#xff09; 使用 java 对 redis 进行操作类似 jdbc 接口标准对 mysql&#xff0c;有各类实现他的实现类&#xff0c;我们常用的是 druid 其中对 redis&#xff0c;我们通常用 J…

深信服技术认证“SCSA-S”划重点:XSS漏洞

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 *点击图片放大展示 深信服…

彻底解决公网ip无法访问服务器的问题

用服务器的公网ip访问突然提示页面无法访问了&#xff0c;之前还是ok的&#xff1a; 解决方案&#xff1a; 步骤1. 检查云服务器的安全组规则是否有添加80端口映射&#xff0c;如果没有需要手动添加&#xff0c;否则不能使用公网访问&#xff0c;检查了一下是有的&#xff1…

STM32 定时器总结

缩写 ARR: Auto-Reload Register&#xff08;保存定时器的计数范围&#xff09; PSC: Prescaler register&#xff08;预分频器寄存器&#xff0c;根据设置的分频因子N&#xff0c;计数N个定时器时钟脉冲后&#xff0c;产生一个CNT计数&#xff0c;以此实现分频功能&#xff0…

Python中函数添加超时时间,Python中signal使用

from time import time, sleepimport signal# 模拟要删除5条数据,中间有超时的i 5# 超时后执行的方法def timeout_handler(signal, frame):# 引发异常raise TimeoutError("删除第" str(i) "条,超时!")# 或者执行其他操作,不往外抛异常(超时的函数不会被…

nodejs+vue+微信小程序+python+PHP的Sd球鞋销售平台的设计与实现-计算机毕业设计推荐

此网站系统的开发方式和信息管理方式&#xff0c;借鉴前人设计的信息和研发。以网站商品信息为主&#xff0c;购物商品为核心功能来进行设计和研发&#xff0c;把网站信息和技术整合&#xff0c;开发出一套Sd球鞋销售平台。用目前现有的新技术进行系统开发&#xff0c;   目…

外包干了3个月,技术倒退2年。。。

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

淘宝用户体验VOC标签体系

本专题共10篇内容&#xff0c;包含淘宝APP基础链路过去一年在用户体验数据科学领域&#xff08;包括商详、物流、性能、消息、客服、旅程等&#xff09;一些探索和实践经验。 在商详页基于用户动线和VOC挖掘用户决策因子带来浏览体验提升&#xff1b;在物流侧洞察用户求助时间与…

UI自动化Selenium 数据驱动读取Excel

selenium 自动化&#xff0c;希望通过Excel进行数据驱动&#xff1b; 即代码自动读取并循环所有数据&#xff1b; 如下为Excel读取封装的函数 # Excel数据读取 def ExcelRead(filename, sheetname):# current_path os.getcwd()current_path "D:\WORK\自动化\pythonsel…

反序列化 [网鼎杯 2020 朱雀组]phpweb 1

打开题目 我们发现这个页面一直在不断的刷新 我们bp抓包一下看看 我们发现index.php用post方式传了两个参数上去&#xff0c;func和p 我们需要猜测func和p两个参数之间的关系&#xff0c;可以用php函数MD5测一下看看 我们在响应处得到了一串密文&#xff0c;md5解密一下看看 发…

深入理解Sentinel系列-1.初识Sentinel

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理&#x1f525;如果感觉博主的文章还不错的话&#xff…

2.postman环境变量及接口关联

一、环境变量以及全局变量 操作流程 1.点击environment 2.点击environment右侧号&#xff0c;新增环境变量 3.在变量中输入变量名以及变量值 4.回到collection页面&#xff0c;修改变量环境 5.在collection中通过{{变量名}}调用变量 变量定义 环境变量&#xff1a;环境变量…

51单片机的硬件组成的功能以及40个引脚的功能

AT89S51单片机的硬件组成 本文主要涉及AT89S51单片机的硬件结构&#xff0c;与89C51还是存在一定的区别文中有说明&#xff0c;介绍了单片机的各硬件的基本功能&#xff0c;并详细介绍了单片机40个引脚的功能 文章目录 AT89S51单片机的硬件组成一、 AT89S51单片机的硬件组成1.1…

javaee实验:文件上传及拦截器的使用

目录 文件上传ModelAttribute注解实验目的实验内容实验过程项目结构编写代码结果展示 文件上传 Spring MVC 提供 MultipartFile 接口作为参数来处理文件上传。 MultipartFile 提供以下方法来获取上传的文件信息&#xff1a;  getOriginalFilename 获取上传的文件名字&#x…

数据结构之交换排序

目录 交换排序 冒泡排序 冒泡排序的时间复杂度 快速排序 快速排序单趟排序的时间复杂度 快速排序的时间复杂度 交换排序 在日常生活中交换排序的使用场景是很多的&#xff0c;比如在学校做早操&#xff0c;老师通常会让学生按大小个排队&#xff0c;如果此时来了一个新学…

【电路笔记】-交流电路中的电阻器

交流电路中的电阻器 文章目录 交流电路中的电阻器1、概述2、交流电路中的电阻器示例 13、交流电路中的电阻器示例2 电阻器也可用于交流电源&#xff0c;其中消耗的电压、电流和功率以有效值给出。 1、概述 在之前的文章中&#xff0c;我们研究了电阻器及其连接&#xff0c;并使…

vue2 echarts饼状图,柱状图,折线图,简单封装以及使用

vue2 echarts饼状图&#xff0c;柱状图&#xff0c;折线图&#xff0c;简单封装以及使用 1. 直接上代码&#xff08;复制可直接用&#xff0c;请根据自己的文件修改引用地址&#xff0c;图表只是简单封装&#xff0c;可根据自身功能&#xff0c;进行进一步配置。&#xff09; …