【PTA-C语言】实验三-循环结构I

news2025/3/1 1:58:06
  • 如果代码存在问题,麻烦大家指正 ~ ~
  • 有帮助麻烦点个赞 ~ ~

    实验三-循环结构I

    • 7-1 求交错序列前N项和 (分数 15)
    • 7-2 寻找250(分数 15)
    • 7-3 最大公约数和最小公倍数(分数 15)
    • 7-4 统计字符(分数 15)
    • 7-5 大笨钟(分数 15)
    • 7-6 统计选票(分数 15)
    • 7-7 降价提醒机器人(分数 15)
    • 7-8 幸运彩票(分数 15)

7-1 求交错序列前N项和 (分数 15)

本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+… 的前N项之和。

输入格式:
输入在一行中给出一个正整数N。

输出格式:
在一行中输出部分和的值,结果保留三位小数。

输入样例:

5

输出样例:

0.917

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

参考代码

#include<stdio.h>
int main()
{
    int N, i, flag=1;
    double sum=0;
    scanf("%d", &N);
    for(i=1; i<=N; i++) {
        sum += 1.0*flag*i/(2*i-1);
        flag =- flag;
    }
    printf("%.3f", sum);
    return 0;
}

7-2 寻找250(分数 15)

在这里插入图片描述

对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。

输入格式:
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。

输出格式:
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。

输入样例:

888 666 123 -233 250 13 250 -222

输出样例:

5

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

参考代码

#include<stdio.h>
int main()
{
    int n, i=0;
    while(1) {
        scanf("%d", &n);
        i++;
        if(n==250)
            break;
    }
    printf("%d", i);
    return 0;
}

7-3 最大公约数和最小公倍数(分数 15)

本题要求两个给定正整数的最大公约数和最小公倍数。

输入格式:
输入在一行中给出两个正整数M和N(≤1000)。

输出格式:
在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。

输入样例:

511 292

输出样例:

73 2044

鸣谢安阳师范学院段晓云老师和软件工程五班李富龙同学补充测试数据!

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

参考代码

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

7-4 统计字符(分数 15)

本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

输入格式:
输入为10个字符。最后一个回车表示输入结束,不算在内。

输出格式:
在一行内按照

letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数

的格式输出。

输入样例:

aZ &
09 Az

输出样例:

letter = 4, blank = 3, digit = 2, other = 1

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

参考代码

#include<stdio.h>
int main()
{
    int letter=0, blank=0, digit=0, other=0, i;
    char x;
    for(i=0;i<10;i++) {
        scanf("%c", &x);
        if((x>='a'&&x<='z') || (x>='A'&&x<='Z'))
            letter++;
        else if(x==' ' || x=='\n')
            blank++;
        else if(x>='0' && x<='9')
            digit++;
        else
            other++;
    }
    printf("letter = %d, blank = %d, digit = %d, other = %d", letter, blank, digit, other);
    return 0;
} 

7-5 大笨钟(分数 15)

微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当当当当”。在午夜00:00到中午12:00期间(端点时间包括在内),笨钟是不敲的。

下面就请你写个程序,根据当前时间替大笨钟敲钟。

输入格式:
输入第一行按照hh:mm的格式给出当前时间。其中hh是小时,在00到23之间;mm是分钟,在00到59之间。

输出格式:
根据当前时间替大笨钟敲钟,即在一行中输出相应数量个Dang。如果不是敲钟期,则输出:

Only hh:mm.  Too early to Dang.

其中hh:mm是输入的时间。

输入样例1:

19:05

输出样例1:

DangDangDangDangDangDangDangDang

输入样例2:

07:05

输出样例2:

Only 07:05.  Too early to Dang.

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

参考代码

#include<stdio.h>
int main()
{
    int h, m, i;
    scanf("%d:%d", &h, &m);
    if(h<12 || h==12 && m==0)
        printf("Only %02d:%02d.  Too early to Dang.", h, m);
    else if(h>12 && m==0)
        for(i=h-12; i>0; i--)
            printf("Dang");
    else if(h>12 && m!=0)
         for(i=h-11; i>0; i--)
             printf("Dang");
    return 0;
} 

7-6 统计选票(分数 15)

某次选举的共有三人参选,试编写程序根据输入的选票值,统计三人各自的得票数和废票数,并输出投票结果。统计规则如下:

  • 选票值为1表示选Tom
  • 选票值为2表示选Jerry
  • 选票值为3表示选Spike
  • 选票值为0或4表示为废票
  • 若3人票数均不大于废票数,则选举结果无效

输入格式:
在一行中依次输入所有选票的值,之间用空格间隔,输入-1则表示输入结束。

输出格式:
在第一行中按如下格式输出票数统计结果。

Tom = 得票数 Jerry = 得票数 Spike = 得票数 Invalid = 废票数

若选举无效,则在第二行中输出

Election invalid!

输入样例1:

3 1 2 1 1 3 3 2 1 2 3 3 2 1 1 3 2 0 1 4 -1

输出样例1:

Tom = 7 Jerry = 5 Spike = 6 Invalid = 2

输入样例2:

3 0 4 0 1 2 0 4 3 2 3 1 1 3 2 0 0 4 -1

输出样例2:

Tom = 3 Jerry = 3 Spike = 4 Invalid = 8
Election invalid!

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

参考代码

#include<stdio.h>
int main()
{
    int n, Tom=0, Jerry=0, Spike=0, Invalid=0, i;
    for(i=0; ;i++){
        scanf("%d", &n);
        if(n==-1)
            break;
        else if(n==1)
            Tom++;
        else if(n==2)
            Jerry++;
        else if(n==3)
            Spike++;
        else if(n==0 || n==4)
            Invalid++;
    }
    if(Invalid>=Tom && Invalid>=Jerry && Invalid>=Spike)
        printf("Tom = %d Jerry = %d Spike = %d Invalid = %d\nElection invalid!", Tom, Jerry, Spike, Invalid);
    else
        printf("Tom = %d Jerry = %d Spike = %d Invalid = %d", Tom, Jerry, Spike, Invalid);
    return 0;
}

7-7 降价提醒机器人(分数 15)

小 T 想买一个玩具很久了,但价格有些高,他打算等便宜些再买。但天天盯着购物网站很麻烦,请你帮小 T 写一个降价提醒机器人,当玩具的当前价格比他设定的价格便宜时发出提醒。

输入格式:
输入第一行是两个正整数 N 和 M (1≤N≤100,0≤M≤1000),表示有 N 条价格记录,小 T 设置的价格为 M。

接下来 N 行,每行有一个实数 Pi(−1000.0<Pi<1000.0),表示一条价格记录。

输出格式:
对每一条比设定价格 M 便宜的价格记录 P,在一行中输出 On Sale! P,其中 P 输出到小数点后 1 位。

输入样例:

4 99
98.0
97.0
100.2
98.9

输出样例:

On Sale! 98.0
On Sale! 97.0
On Sale! 98.9

代码长度限制 16 KB

  • Java (javac)
    时间限制 600 ms
    内存限制 64 MB
  • 其他编译器
    时间限制 400 ms
    内存限制 64 MB

参考代码

#include<stdio.h>
int main()
{
    int N, i;
    double M, p;
    scanf("%d %lf", &N, &M);
    for(i=0; i<N; i++) {
        scanf("%lf", &p);
        if(p<M)
            printf("On Sale! %.1lf\n", p);
    }
    return 0;
}

7-8 幸运彩票(分数 15)

彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。

输入格式:
输入在第一行中给出一个正整数 N(≤ 100)。随后 N 行,每行给出一张彩票的 6 位数字。

输出格式:
对每张彩票,如果它是幸运的,就在一行中输出 You are lucky!;否则输出 Wish you good luck.

输入样例:

2
233008
123456

输出样例:

You are lucky!
Wish you good luck.

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

参考代码

#include<stdio.h>
int main()
{
     int i, n, a, b, c, d, e, f;
    scanf("%d", &n);
    for(i=1; i<=n; i++) {
        scanf("%1d%1d%1d%1d%1d%1d\n", &a, &b, &c, &d, &e, &f);
        if(a+b+c == d+e+f)
            printf("You are lucky!\n");
        else
            printf("Wish you good luck.\n");
     }
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css中元素水平居中的方式

文章目录 前言水平居中&#xff1a;垂直居中方法一: text-align: centerdisplay: table-cell方法二:父元素静态定位子元素通过相对定位来实现方法三:通过静态和相对定位方法四 css图片居中用text-align:center无效怎么回事&#xff1f;如何让图片在DIV中水平和垂直两个方向都居…

C语言中的格式化输出符号:%d %c %p %x等

文章目录 概览%d%c%d和%c的区别%p%x %X输出浮点数参考 概览 C语言中的格式化输出符号有很多&#xff0c;以下是一些常见的&#xff1a; %d 或 %i&#xff1a;用于输出十进制整数。 %u&#xff1a;用于输出无符号十进制整数。 %f&#xff1a;用于输出浮点数。 %s&#xff1a;用…

mac修改默认shell为bash

1. 打开系统偏好设置 2. 点击用户群组 3. 按住ctrl&#xff0c;点击用户名 4. 点击高级选项&#xff0c;修改登录shell 参考&#xff1a;在 Mac 上将 zsh 用作默认 Shell - 官方 Apple 支持 (中国)

AI 绘画 | Stable Diffusion 电商模特

前言 上一篇文章讲到如何给人物更换背景和服装。今天主要讲电商模特,就是服装电商们的固定服装产品图片如何变成真人模特穿上的固定服装产品效果图。如果你掌握了 《AI 绘画 | Stable Diffusion 人物 换背景|换服装》,这篇文章对你来说,上手会更轻松。 教程 提取服装蒙版…

OpenCV技术应用(5)— 将一幅图像均分成4幅图像

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。本节课就手把手教你如何将一幅图像均分成4幅图像&#xff0c;希望大家学习之后能够有所收获~&#xff01;&#x1f308; 目录 &#x1f680;1.技术介绍 &#x1f680;2.实现代码 &#x1f680;1.技术介绍 如果将下图…

ubuntu22.04离线手动安装openstack yoga和ceph quincy

目录 写在前面材料准备一. OpenStack部1. 创建虚拟网络和虚拟机2. 配置离线环境3. 环境准备3.1 配置网络3.2 配置主机名并配置解析3.3 时间调整3.4 安装openstack客户端3.5 安装部署MariaDB3.6 安装部署RabbitMQ控制节点操作3.7 安装部署Memcache控制节点操作 4. 部署配置keyst…

有点迷糊class和初始化参数的用法了

翻阅手册https://www.runoob.com/python3/python3-class.html Python从设计之初就已经是一门面向对象的语言&#xff0c;正因为如此&#xff0c;在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。 如果你以前没有接触过面向对象的编程语言&…

牛客算法题 【HJ97 记负均正】 golang实现

题目 HJ97 记负均正 描述 首先输入要输入的整数个数n&#xff0c;然后输入n个整数。输出为n个整数中负数的个数&#xff0c;和所有正整数的平均值&#xff0c;结果保留一位小数。 0即不是正整数&#xff0c;也不是负数&#xff0c;不计入计算。如果没有正数&#xff0c;则平均…

基于PHP的高中生物学习平台

有需要请加文章底部Q哦 可远程调试 基于PHP的高中生物学习平台 一 介绍 此高中生物学习平台基于原生PHP开发&#xff0c;数据库mysql。系统角色分为用户和管理员。(附带参考设计文档) 技术栈&#xff1a;phpmysqlphpstudyvscode 二 功能 学生 1 注册/登录/注销 2 个人中心 …

6.C转python

1.用append函数增加数组元素时,注意好那个 . 2.可以用insert()函数增加列表任意位置的元素,参数一为插入的下标,而二为内容 例: 若那个参数一超过了列表的最大下标,则会在列表末尾添加内容 3.查找列表中的元素 例: 4.可以使用index函数来找到当期那要找的元素的下标 例(…

@RequestMapping处理请求异常

使用RequestMapping不指定请求方式&#xff0c;多种请求方式都支持。 Get格式FORM_URLENCODED Content-Typeapplication/x-www-form-urlencoded URL形式传参&#xff0c;请求体里面的内容是&#xff1a;usernamejohnexample.com&passwordsecretpassword&grant_type…

制作一个RISC-V的操作系统-环境搭建

文章目录 前言环境搭配 前言 由于之前的操作系统反馈难度太大&#xff0c;所以准备从这个RISC-V操作系统出发&#xff0c;以后知识层面更加深入再去完善。 环境搭配 按照依赖项 $ sudo apt update $ sudo apt install build-essential gcc make perl dkms git gcc-riscv64-…

CGAL的三维曲面网格生成

1、介绍 此程序包提供了一个函数模板&#xff0c;用于计算三角网格&#xff0c;以近似表面。 网格化算法要求仅通过一个能够判断给定线段、直线或射线是否与曲面相交&#xff0c;并且如果相交则计算交点的oracle来了解待网格化的表面。这一特性使该软件包具有足够的通用性&…

如何获取唐诗三百首中的名句列表接口

唐诗三百首&#xff0c;是中国文学中最为经典的诗歌选集之一&#xff0c;其中涵盖了大量美丽、深刻的诗句&#xff0c;被广泛传诵。有不少文化爱好者希望能够获取这些名句列表&#xff0c;以便深入理解唐诗的内涵和精华。那么&#xff0c;如何获取唐诗三百首中的名句列表呢&…

虚假IP地址攻击的溯源方法

随着网络技术的迅速发展&#xff0c;网络攻击行为也日益猖獗。其中&#xff0c;虚假IP地址攻击是一种较为常见的网络攻击方式&#xff0c;它利用虚假的IP地址&#xff0c;通过互联网对目标进行攻击和入侵。这种攻击方式不仅难以追踪&#xff0c;而且往往会给企业和个人带来巨大…

代码随想录day3 203.移除列表元素 707.设计链表 206.反转链表

数组是在内存中是连续分布的&#xff0c;但是链表在内存中可不是连续分布的。 双链表 单链表中的指针域只能指向节点的下一个节点。 双链表&#xff1a;每一个节点有两个指针域&#xff0c;一个指向下一个节点&#xff0c;一个指向上一个节点。 双链表 既可以向前查询也可以…

k8s ingress 无法找到端点

文章目录 ingress rule无法找到端点这个注解是什么意思呢&#xff1f;为何不生效呢&#xff1f;端点无法更新&#xff1f;如何确认ingressclass呢&#xff1f;修复端点无法发现的问题多个ingress controller 架构 ingress rule无法找到端点 在vnnox-cn集群创建ingress&#xf…

C++学习之路(十六)C++ 用Qt5实现一个工具箱(为屏幕颜色提取功能增加一个点击复制的功能)- 示例代码拆分讲解

上篇文章&#xff0c;我们用 Qt5 实现了在小工具箱中添加了《颜色代码转换和屏幕颜色提取功能》功能。今天我们把屏幕颜色提取的功能再扩展一下&#xff0c;让它可以点击复制吧。下面我们就来看看如何来规划开发这样的小功能并且添加到我们的工具箱中吧。 老规矩&#xff0c;先…

前端面试JS— JS数据类型及相关内容

目录 JS数据类型 基本数据类型&#xff1a; 引用数据类型&#xff1a; 两种数据存储方式&#xff1a; 两种数据类型的区别&#xff1a; 数据类型的检测方式 null和undefined区别 JS数据类型 基本数据类型&#xff1a; Number&#xff0c;String&#xff0c;Boolean&#xff0c;…

使用Pytorch从零开始实现BERT

生成式建模知识回顾: [1] 生成式建模概述 [2] Transformer I&#xff0c;Transformer II [3] 变分自编码器 [4] 生成对抗网络&#xff0c;高级生成对抗网络 I&#xff0c;高级生成对抗网络 II [5] 自回归模型 [6] 归一化流模型 [7] 基于能量的模型 [8] 扩散模型 I, 扩散模型 II…