Day 2

每日一题

在这里插入图片描述

题目

题目描述
输入多个整数(一行),输出其中最大的整数。
输入格式
一行多个整数,用空格隔开。
输出格式
一个整数。

Java写法:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] str = br.readLine().split(" ");  // 读取一行并用空格分割
        int max = Integer.MIN_VALUE;  // 初始化最大值为最小整数
        for (String s : str) {
            int num = Integer.parseInt(s);  // 将字符串转化为整数
            max = Math.max(max, num);  // 更新最大值
        }
        System.out.println(max);  // 输出最大值
    }
}

Tips:

br.readLine() ,怎么老写成nextLine啊

C写法:

#include <stdio.h>
#include <limits.h>  // INT_MIN

int main() {
    int max = INT_MIN;  // 初始化最大值为最小整数
    int num;
    while (scanf("%d", &num) != EOF) {
        if (num > max) {
            max = num;
        }
    }
    printf("%d", max);  // 输出最大值
    return 0;
}

Tips:

  1. EOF(End of File)是一个宏定义,表示文件结束标志,通常用于判断文件是否已经读到结尾。在 C 语言中,scanf 函数会返回读取的数据项个数,当读取到文件结尾时返回 EOF(-1),因此可以利用 scanf 函数的返回值来判断是否读取到文件结尾。在上述 C 代码中,while 循环的条件是 scanf(“%d”, &num) != EOF,即只要每次读取的数据项个数不是 EOF,就继续读取。
  2. scanf 函数默认以空白字符(包括空格、制表符、换行符等)作为分隔符,将输入流分解成多个输入项进行处理。当使用 %d 格式控制字符串时,scanf 函数会忽略输入流中的空白字符,并从第一个非空白字符开始读取一个整数。因此,当输入流中包含空格时,scanf 函数不会停止,而是跳过空格继续读取下一个非空白字符,直到读取完整个输入流或者遇到不能转换为整数的字符为止。

C++写法:

#include <iostream>
#include <climits>  // INT_MIN

using namespace std;

int main() {
    int max = INT_MIN;  // 初始化最大值为最小整数
    int num;
    while (cin >> num) {
        if (num > max) {
            max = num;
        }
    }
    cout << max;  // 输出最大值
    return 0;
}

Tips:

  1. using namespace std; 是 C++ 中的一个命名空间声明语句。命名空间是 C++ 语言中用于避免命名冲突的一种机制,可以将一些名字放到特定的命名空间中,避免和其他作用域中的名字发生冲突。

    C++ 标准库中的所有函数和类型都定义在 std 命名空间中,因此在使用标准库中的函数和类型时,需要在代码中加上 std:: 前缀。为了避免频繁使用 std:: 前缀,可以使用 using namespace std; 声明语句,表示使用 std 命名空间中的所有名字,从而可以直接使用标准库中的函数和类型。

    需要注意的是,使用 using namespace std; 声明语句会将 std 命名空间中的所有名字引入到当前作用域中,可能会与其他命名空间或全局作用域中的名字发生冲突,因此在实际编程中应该避免滥用这个语句,最好使用需要使用的具体函数和类型的前缀。

  2. cin 和 cout 分别是 C++ 标准库中的输入流和输出流对象,用于进行输入和输出操作。

    cin >> num 表示从标准输入流(通常是键盘)读取一个整数,存储到变量 num 中。其中 >> 是 C++ 的输入运算符,用于将输入流中的数据输入到变量中。

    cout << max 表示向标准输出流(通常是屏幕)输出一个变量 max 的值。其中 << 是 C++ 的输出运算符,用于将变量的值输出到输出流中。

    在 C++ 中,<< 和 >> 运算符都是重载运算符,既可以用于输出和输入基本数据类型,也可以用于输出和输入自定义的对象类型。由于输入运算符的左侧是输入流,右侧是变量,而输出运算符的左侧是输出流,右侧是变量,因此看起来会有一些不同。

Python写法:

import sys

max_num = -sys.maxsize  # 初始化最大值为最小整数
nums = input().split()
for num in nums:
    num = int(num)
    if num > max_num:
        max_num = num
print(max_num)  # 输出最大值

Tips:

  1. import sys 是 Python 中的一个模块导入语句,用于导入标准库中的 sys 模块。sys 模块包含了一些与 Python 解释器和系统环境有关的函数和变量,例如 sys.argv 可以获取命令行参数,sys.exit() 可以退出 Python 程序等等。

  2. sys.maxsize 是 Python 中 sys 模块中定义的一个变量,表示整数的最大值,其值是系统的架构相关的。在初始化最大值为最小整数时,可以将其设为 -sys.maxsize,这样可以保证最开始的最大值比任何一个输入值都要小,从而能够正确地更新最大值。

  3. input().split() 是 Python 中的一种读取输入的方式,其中 input() 用于从标准输入读取一行字符串,split() 用于将字符串按照空格分割成一个字符串列表。默认情况下,split() 会以任意空格字符(包括空格、制表符和换行符)为分隔符进行分割,因此不需要在括号里面写 ’ '。

  4. input().split() 返回的是一个字符串列表,其中每个字符串表示输入的一个整数。由于 Python 是一种弱类型语言,因此可以直接将这些字符串转换为整数,例如可以使用列表推导式将其转换为一个整数列表:

PHP写法:

<?php
$max = PHP_INT_MIN;  // 初始化最大值为最小整数
$nums = explode(" ", trim(fgets(STDIN)));
foreach ($nums as $num) {
    $num = intval($num);
    if ($num > $max) {
        $max = $num;
    }
}
echo $max;  // 输出最大值
?>

Tips:

  1. fgets(STDIN):从标准输入(即键盘)读取一行字符串,STDIN 是 PHP 中一个常量,表示标准输入流。
  2. trim():去掉字符串两端的空格和换行符。
  3. explode(" ", $str):将字符串 $str 按照空格分割成一个数组,其中 " " 表示分隔符,可以是任意字符串。
  4. $nums = explode(" ", trim(fgets(STDIN))):将从标准输入读取到的一行字符串按照空格分割成一个数组,并赋值给 $nums 变量。
    因为 PHP 是一种弱类型语言,所以 $nums 的类型实际上是一个字符串数组,需要将其转换为整 数数组,可以使用 array_map() 函数和 intval() 函数.

打卡!
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值