标题:平时练习遇到的题,有思路但写不出,希望可以帮帮我
只看楼主
Marshul
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-10-2
结帖率:0
 问题点数:0 回复次数:6 
平时练习遇到的题,有思路但写不出,希望可以帮帮我
【问题描述】输入一个长度不超过20的字符串,包括数字、字母、下划线,字符串至少包含一个数字,数字为整型数据(1-9)。从字符串中找出夹杂的数字(1-9),并按照数字从大到小的顺序分别进行加减乘,循环进行,直到所有数字都进行过运算,输出运算的结果。
【测试样例一】
输入:12ajf
输出:3
【测试样例二】
输入:fi8x_a7
输出:15
【测试样例三】
f2f_a7i_2as51
输出:21
样例三解释: (7+5-2)*2+1=21
搜索更多相关主题的帖子: 练习 思路 字符串 数字 输出 
2017-10-03 08:15
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    int i = 0, sum=0, flag=0, j=0;
    char str[20] = { 0 };

    scanf("%s", str);
    while (!(str[i] >= '0' && str[i] <= '9')) i++;
    
    sum += str[i] - 48;
    if (i == strlen(str))
    {
        return sum;
    }
    
    i += 1;
    for (j = i;j<strlen(str);j++)
    {
        if ( str[j]>= '0' && str[j]<= '9')
        {
            flag++;
            switch (flag % 3)
            {
            case 1:
                sum += str[j] - 48;
                break;
            case 2:
                sum -= (str[j] - 48);
                break;
            case 0:
                sum *= (str[j] - 48);
                break;
            }
        }
    }

    printf("%d", sum);
    system("pause");
    return 0;
}

早知做人那么辛苦!  当初不应该下凡
2017-10-04 11:00
Marshul
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-10-2
得分:0 
谢谢,小白我学到好多
2017-10-04 11:02
GBH1
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:112
专家分:510
注 册:2017-6-13
得分:0 
二楼代码貌似无法实现楼主的要求,楼主要求:按照数字从大到小的顺序分别进行加减乘,循环进行,直到所有数字都进行过运算,输出运算的结果。
按照二楼的代码:输入:f2f_a7i_2as51 结果:2+7-2*5+1 = 36;
我的思路如下:
第一步:找出所有的数字,存入数组;
第二步:数组排序
第三步:求和
代码就不写了,我觉得楼主应该能写出来
2017-10-05 19:22
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
我是来灌水的……对于这边查找边排序的用优先队列效率比较高~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-10-05 20:01
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
回复 5楼 九转星河
什么是有限队列呀?

剑栈风樯各苦辛,别时冰雪到时春
2017-10-05 20:39
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 6楼 林月儿
https://bbs.bccn.net/thread-480829-1-1.html
嗯,这个解释网上可以搜到……就是模拟堆的结构进行的一种较为高效的排序方式~我之前自己弄了些代码~可以参考~


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-10-05 23:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-481098-1-1.html




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

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