| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1091 人关注过本帖
标题:初学者C语言,输入一组字符,判断其中数字字符是否重复,输出正确答案
只看楼主 加入收藏
哈哈哈哈镜
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2023-10-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
初学者C语言,输入一组字符,判断其中数字字符是否重复,输出正确答案
,输入一组字符,判断其中数字字符是否重复,输出正确答案
搜索更多相关主题的帖子: 是否 输出 字符 正确答案 重复 
2023-10-20 00:23
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:1 
输入一组字符,判断其中数字字符是否重复,输出正确答案
输入的格式是什么呢?一行,还是指定字符数量并忽略空白字符,……?
答案的格式是什么呢?输出“是”“否”,还是……?
2023-10-20 08:33
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1508
专家分:9241
注 册:2010-3-16
收藏
得分:6 
int  num[10]={0}    保存数字字符数量
fgets读取字符串str,遍历判断是否数字,是的话保存到num里,num[str[i]-'0']++

最后遍历num找大于1的。
2023-10-20 10:16
哈哈哈哈镜
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2023-10-20
收藏
得分:0 
回复 2楼 rjsp
输入一行字符,判断其中的数字字符是否有重复的数字,并输出正确答案。
这就是原。
就是输入一行字符,其他没有规定。
我认为应该是输出判断,yes 或no
2023-10-20 16:31
哈哈哈哈镜
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2023-10-20
收藏
得分:0 
回复 3楼 apull
还是小白,不太理解
2023-10-20 16:40
沈和
Rank: 4
等 级:业余侠客
威 望:5
帖 子:45
专家分:214
注 册:2019-8-26
收藏
得分:13 
以下是引用apull在2023-10-20 10:16:58的发言:

int  num[10]={0}    保存数字字符数量
fgets读取字符串str,遍历判断是否数字,是的话保存到num里,num[str-'0']++

最后遍历num找大于1的。


多尝试写一写,会发现还是简单的。三楼版主给的思路很准确了。
下面是一段参考代码。

程序代码:
#include <stdio.h>

int main(void) {
    char str[128];
    char* ps = str;
    int count[10] = { 0 };
    gets(str);
    while(*ps) {
        if (*ps >= '0' && *ps <= '9') {
            count[*ps - '0']++;
        }
        ps++;
    }
    for(int i=0; i<10; i++) {
        if (count[i] > 1) {
            puts("yes");
            return 0;
        }
    }
    puts("no");
    return 0;
}
2023-10-20 19:47
哈哈哈哈镜
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2023-10-20
收藏
得分:0 
回复 6楼 沈和
好的,谢谢大佬
2023-10-20 22:19
哈哈哈哈镜
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2023-10-20
收藏
得分:0 
回复 6楼 沈和
大佬,我想请教一下,count[*ps-'0']++是什么意思

[此贴子已经被作者于2023-10-22 10:38编辑过]

2023-10-22 10:05
沈和
Rank: 4
等 级:业余侠客
威 望:5
帖 子:45
专家分:214
注 册:2019-8-26
收藏
得分:0 
回复 8楼 哈哈哈哈镜
字符的实质是 ascii 码。可以参考 https://c.

程序代码:
// '0': 48, '1': 49, '2': 50 ...

// 比如 *ps == '0',则有 *ps - '0' == 0, count[*ps - '0']++ 即 count[0]++
// 类比 *ps == '1',则有 *ps - '0' == 1, count[*ps - '0']++ 即 count[1]++
2023-10-22 10:59
快速回复:初学者C语言,输入一组字符,判断其中数字字符是否重复,输出正确答案
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.309777 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved