【C语言】备战校赛Day2

简介: 【C语言】备战校赛Day2

题目描述

给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C=5×(F−32)/9。题目保证输入与输出均在整型范围内。

输入描述

输入在一行中给出一个华氏温度。

输出描述

在一行中按照格式“Celsius = C”输出对应的摄氏温度C的整数值。

输入样例

150

输出样例

Celsius = 65


解题代码

int main()
{
    int f=0;
    scanf("%d",&f);
    
    int c=5*(f-32)/9;//照题中给出的公式进行计算
    
    printf("Celsius = %d",c);//输出也按照输出案例输出即可
 
    return 0;
}

本题的解题步骤为:

  1. 接收系统输入值
  2. 使用公式计算
  3. 输出计算结果

细节详解见代码注释.


提交结果


L1-005 考试座位号

题目描述

每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。

输入描述

输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。

考生信息之后,给出一个正整数 M(≤N),随后一行中给出 M 个待查询的试机座位号码,以空格分隔。

输出描述

对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用 1 个空格分隔。

输入样例

4
3310120150912233 2 4
3310120150912119 4 1
3310120150912126 1 3
3310120150912002 3 2
2
3 4

输出样例

3310120150912002 2
3310120150912119 1


解题代码

#include<stdio.h>
#include<stdio.h>
typedef struct stu
{
    char idea[17];//留一位存'\0'!
    int s;      //存放试机座位号码信息
    int k;      //存放考试座位号码信息
}stu;
 
int main()
{
    int n = 0;
    scanf("%d", &n);
    stu data[n];//创建结构体数组存放所有人的考号,座位号,考试号等信息
    int i = 0;
    while (i < n)
    {
        scanf("%s", data[i].idea);//接收考生考号,放在结构体数组中
        scanf("%d", &data[i].s);//接收试机号
        scanf("%d", &data[i].k);//接收考试座位号
        i++;
    }
    int c = 0;
    scanf("%d", &c);//接收要查询的考生的个数
    i = 0;
    while (i < c)//依据考生个数循环查询次数
    {
        int s = 0, j = 0;//用s接收试机号,与结构体成员s进行比对
                        //用j遍历结构体数组
        scanf("%d", &s);
        while (j < n)
        {
            if (s == data[j].s)//如果两个s相等,说明找到了
            {
                printf("%s %d\n", data[j].idea, data[j].k);
                //找到了之后打印考生的学号和考试位置信息即可
                break;//打印完跳出循环
            }
            j++;//没找到就继续向后找
        }
        i++;//完成了一个考生的查,下面循环下一个考生的查
    }
}

本题的解题步骤为:

  1. 创建结构体数组存放考生信息
  2. 录入考生信息
  3. 遍历查询考生信息
  4. 找到信息后输出

细节详解见代码注释.


提交结果


L1-006 连续因子*

题目描述

一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。

输入描述

输入在一行中给出一个正整数 N(1<N<231)。

输出描述

首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1*因子2*……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。

输入样例

630

输出样例

3
5*6*7


解题代码

#include <stdio.h>
 
int main()
{
    unsigned int N;
    scanf("%u", &N); // 输入正整数 N
 
    unsigned int maxLength = 0; // 最长连续因子的个数
    unsigned int start = 0; // 最小连续因子序列的起始因子
 
    // 枚举因子 i,i 的最大取值为 sqrt(N)
    for (unsigned int i = 2; i * i <= N; i++)
    {
        unsigned int j = i; // j 从 i 开始
        unsigned int product = 1; // 初始化连续因子的乘积为 1
 
        // 枚举连续因子 j,直到乘积不再是 N 的因子
        while (1)
        {
            product *= j;
            if (N % product != 0) // 如果乘积不再是 N 的因子,则退出循环
                break;
 
            // 如果当前连续因子个数大于之前的记录,则更新最长连续因子的个数和最小连续因子序列的起始因子
            if (j - i + 1 > maxLength)
            {
                maxLength = j - i + 1;
                start = i;
            }
 
            j++; // j 自增
        }
    }
 
    // 如果最长连续因子的个数为 0,则 N 本身就是最小连续因子序列
    if (maxLength == 0) {
        printf("1\n%u\n", N);
    } else {
        printf("%u\n", maxLength);
        // 输出最小连续因子序列
        for (unsigned int i = 0; i < maxLength; i++) {
            printf("%u", start + i);
            if (i != maxLength - 1)
                printf("*");
        }
        printf("\n");
    }
 
    return 0;
}

本题的解题步骤为:

  1. 首先,我们需要枚举因子 i,i 的最大取值为 sqrt(N)。因为如果 N 有一个大于 sqrt(N) 的因子,那么另一个因子就会小于 sqrt(N),这样的两个因子是不连续的。
  2. 对于每个因子 i,我们从 i 开始枚举连续因子 j,直到乘积不再是 N 的因子。在这个过程中,我们不断更新最长连续因子的个数和最小连续因子序列的起始因子。
  3. 如果最长连续因子的个数为 0,说明 N 本身就是最小连续因子序列。
  4. 如果最长连续因子的个数不为 0,我们输出最小连续因子序列。
  5. 这样,我们就可以找到最长连续因子的个数,并输出最小的连续因子序列。

细节详解见代码注释.


提交结果


 


相关文章
|
8月前
|
C语言
【C语言】备战校赛Day3
【C语言】备战校赛Day3
75 0
【C语言】备战校赛Day3
|
8月前
|
测试技术 C语言
【C语言】备战校赛Day1
【C语言】备战校赛Day1
104 0
|
11天前
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
49 23
|
11天前
|
算法 C语言
【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
本文档介绍了如何编写两个子函数,分别求任意两个整数的最大公约数和最小公倍数。内容涵盖循环控制与跳转语句的使用、最大公约数的求法(包括辗转相除法和更相减损术),以及基于最大公约数求最小公倍数的方法。通过示例代码和测试说明,帮助读者理解和实现相关算法。最终提供了完整的通关代码及测试结果,确保编程任务的成功完成。
42 15
|
11天前
|
C语言
【C语言程序设计——函数】亲密数判定(头歌实践教学平台习题)【合集】
本文介绍了通过编程实现打印3000以内的全部亲密数的任务。主要内容包括: 1. **任务描述**:实现函数打印3000以内的全部亲密数。 2. **相关知识**: - 循环控制和跳转语句(for、while循环,break、continue语句)的使用。 - 亲密数的概念及历史背景。 - 判断亲密数的方法:计算数A的因子和存于B,再计算B的因子和存于sum,最后比较sum与A是否相等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台对代码进行测试,预期输出如220和284是一组亲密数。 5. **通关代码**:提供了完整的C语言代码实现
50 24
|
7天前
|
存储 C语言
【C语言程序设计——函数】递归求斐波那契数列的前n项(头歌实践教学平台习题)【合集】
本关任务是编写递归函数求斐波那契数列的前n项。主要内容包括: 1. **递归的概念**:递归是一种函数直接或间接调用自身的编程技巧,通过“俄罗斯套娃”的方式解决问题。 2. **边界条件的确定**:边界条件是递归停止的条件,确保递归不会无限进行。例如,计算阶乘时,当n为0或1时返回1。 3. **循环控制与跳转语句**:介绍`for`、`while`循环及`break`、`continue`语句的使用方法。 编程要求是在右侧编辑器Begin--End之间补充代码,测试输入分别为3和5,预期输出为斐波那契数列的前几项。通关代码已给出,需确保正确实现递归逻辑并处理好边界条件,以避免栈溢出或结果
46 16
|
6天前
|
存储 编译器 C语言
【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
函数首部:按照 C 语言语法,函数的定义首部表明这是一个自定义函数,函数名为fun,它接收一个整型参数n,用于指定要求阶乘的那个数,并且函数的返回值类型为float(在实际中如果阶乘结果数值较大,用float可能会有精度损失,也可以考虑使用double等更合适的数据类型,这里以float为例)。例如:// 函数体代码将放在这里函数体内部变量定义:在函数体中,首先需要定义一些变量来辅助完成阶乘的计算。比如需要定义一个变量(通常为float或double类型,这里假设用float。
18 3
|
6天前
|
存储 算法 安全
【C语言程序设计——函数】分数数列求和1(头歌实践教学平台习题)【合集】
if 语句是最基础的形式,当条件为真时执行其内部的语句块;switch 语句则适用于针对一个表达式的多个固定值进行判断,根据表达式的值与各个 case 后的常量值匹配情况,执行相应 case 分支下的语句,直到遇到 break 语句跳出 switch 结构,若没有匹配值则执行 default 分支(可选)。例如,在判断一个数是否大于 10 的场景中,条件表达式为 “num> 10”,这里的 “num” 是程序中的变量,通过比较其值与 10 的大小关系来确定条件的真假。常量的值必须是唯一的,且在同一个。
11 2
|
10天前
|
存储 编译器 C语言
【C语言程序设计——函数】回文数判定(头歌实践教学平台习题)【合集】
算术运算于 C 语言仿若精密 “齿轮组”,驱动着数值处理流程。编写函数求区间[100,500]中所有的回文数,要求每行打印10个数。根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码。如果操作数是浮点数,在 C 语言中是不允许直接进行。的结果是 -1,因为 -7 除以 3 商为 -2,余数为 -1;注意:每一个数据输出格式为 printf("%4d", i);的结果是 1,因为 7 除以 -3 商为 -2,余数为 1。取余运算要求两个操作数必须是整数类型,包括。开始你的任务吧,祝你成功!
41 1
|
1月前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
78 10

热门文章

最新文章

相关实验场景

更多