鱼C论坛

 找回密码
 立即注册
查看: 1724|回复: 4

[已解决]求助

[复制链接]
发表于 2023-10-30 21:38:20 | 显示全部楼层 |阅读模式
10鱼币
输入格式:
一行中有不超过5个整数(如果超过5个,则只识别前5个),请从左到右识别,直到末尾或者遇到非数字字符。

输出格式:
识别出的整数个数,如果没有数据,则输出-1。
输入样例:
18 -299  520 1314 2587
输出样例:
5
输入样例:
56  69 78,123 4567
输出样例:
3
输入样例:
A=56,B=69,C=78,D=123,E=4567
输出样例:
0
使用的越简单越基础最好。
最佳答案
2023-10-30 21:38:21
C语言
#include <stdio.h>
#include <ctype.h>

int main() {
    int count = 0;
    int num;
    while (scanf("%d", &num) == 1) {
        count++;
        if (count >= 5) {
            break;
        }
    }

    if (count == 0) {
        printf("-1\n");
    } else {
        printf("%d\n", count);
    }

    return 0;
}
Python
import re

input_str = input().strip()
numbers = re.findall(r'\d+', input_str)
count = min(len(numbers), 5)

if count == 0:
    print("-1")
else:
    print(count)

以上是使用C语言和Python编写的程序来实现输入格式识别的功能。

这两个程序的逻辑基本相同。它们首先从输入中提取出数字,然后根据实际提取到的数字个数进行计数。在C语言版本中,使用`scanf`函数读取整数,而在Python版本中,使用正则表达式模块`re`的`findall`函数提取数字。

无论是C语言还是Python,它们都会将提取到的数字个数与5进行比较,以限制最多只能识别5个整数。最后,根据识别到的整数个数进行输出,如果没有识别到任何数字,则输出-1。

这两个程序都是基本的实现,没有涉及复杂的功能和高级特性,以满足您提出的简单和基础的要求。

最佳答案

查看完整内容

C语言 Python 以上是使用C语言和Python编写的程序来实现输入格式识别的功能。 这两个程序的逻辑基本相同。它们首先从输入中提取出数字,然后根据实际提取到的数字个数进行计数。在C语言版本中,使用`scanf`函数读取整数,而在Python版本中,使用正则表达式模块`re`的`findall`函数提取数字。 无论是C语言还是Python,它们都会将提取到的数字个数与5进行比较,以限制最多只能识别5个整数。最后,根据识别到的整数个数 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-30 21:38:21 | 显示全部楼层    本楼为最佳答案   
C语言
#include <stdio.h>
#include <ctype.h>

int main() {
    int count = 0;
    int num;
    while (scanf("%d", &num) == 1) {
        count++;
        if (count >= 5) {
            break;
        }
    }

    if (count == 0) {
        printf("-1\n");
    } else {
        printf("%d\n", count);
    }

    return 0;
}
Python
import re

input_str = input().strip()
numbers = re.findall(r'\d+', input_str)
count = min(len(numbers), 5)

if count == 0:
    print("-1")
else:
    print(count)

以上是使用C语言和Python编写的程序来实现输入格式识别的功能。

这两个程序的逻辑基本相同。它们首先从输入中提取出数字,然后根据实际提取到的数字个数进行计数。在C语言版本中,使用`scanf`函数读取整数,而在Python版本中,使用正则表达式模块`re`的`findall`函数提取数字。

无论是C语言还是Python,它们都会将提取到的数字个数与5进行比较,以限制最多只能识别5个整数。最后,根据识别到的整数个数进行输出,如果没有识别到任何数字,则输出-1。

这两个程序都是基本的实现,没有涉及复杂的功能和高级特性,以满足您提出的简单和基础的要求。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-30 21:38:25 | 显示全部楼层
解决方案如下:
import re

input_str = input()  # 获取输入的一行字符串

# 使用正则表达式匹配整数
integers = re.findall(r'\b\d+\b', input_str)

# 如果找到整数,则输出整数个数,否则输出-1
if integers:
    print(len(integers))
else:
    print(-1)

解释:
1. 首先,我们使用 input() 函数获取输入的一行字符串。
2. 然后,我们使用正则表达式 r'\b\d+\b' 来匹配整数。其中, \b 表示单词边界, \d+ 表示匹配一个或多个数字字符。
3. 使用 re.findall() 函数来查找字符串中所有匹配的整数,并将它们存储在 integers 列表中。
4. 最后,我们检查 integers 列表是否为空。如果不为空,则输出整数个数(即列表的长度),否则输出-1。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-30 21:39:24 | 显示全部楼层
问题描述:
给定一行数据,其中包含若干个整数,要求从左到右识别并计算出整数的个数。

思路:
我们可以按照以下步骤解决这个问题:
1. 读取输入的字符串。
2. 逐个字符遍历输入的字符串。
3. 判断每个字符是否为数字,如果是,则继续读取后续连续的数字字符,直到遇到非数字字符或字符串结尾。
4. 如果读取到了至少一个数字字符,将其转换为整数并计数。
5. 重复步骤3和步骤4,直到遍历完整个字符串。
6. 输出计数结果。

下面是使用Python语言实现上述思路的示例代码:
input_str = input()  # 读取输入的字符串count = 0  # 计数变量,记录整数个数i = 0  # 遍历字符串时用到的索引变量while i < len(input_str):    # 忽略空格字符    if input_str[i].isspace():        i += 1        continue        # 判断当前字符是否为数字    if input_str[i].isdigit():        count += 1        # 继续读取后续连续的数字字符        while i < len(input_str) and input_str[i].isdigit():            i += 1    else:        i += 1print(count)
你可以将上述代码复制到你的编程环境中运行,测试不同的输入样例,得到相应的输出结果。希望能帮助到你!如果有任何疑问,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-10-30 22:27:04 | 显示全部楼层
Mike_python小 发表于 2023-10-30 21:39
问题描述:
给定一行数据,其中包含若干个整数,要求从左到右识别并计算出整数的个数。

不好意思,我现在还在学C语言,这个我看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 08:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表