51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1605|回复: 5
打印 上一主题 下一主题

2,3,4测试点无法通过

[复制链接]
  • TA的每日心情
    擦汗
    前天 09:07
  • 签到天数: 527 天

    连续签到: 4 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2020-9-7 11:28:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    我想用char数组解决输出时三位数之前的“0”,于是用了很多的循环,我自己改了几次,但2,3,4测试点就是无法通过,很苦恼。请问一下代码还有什么地方欠考虑。
    1. #include<iostream>
    2. #include<string>
    3. #include<algorithm>
    4. using namespace std;

    5. bool cmp(char a, char b)
    6. {
    7.    return a > b;
    8. }
    9. int main()
    10. {
    11.    char number1[4], number2[4];
    12.    int n = 0;
    13.    for (int i = 0; i < 4; i++)
    14.    {
    15.        cin>>number1[i];
    16.    }
    17.    if (number1[0] == number1[1]&& number1[1]== number1[2]&& number1[2]== number1[3])//4位数字相同时的输出
    18.    {
    19.        for (int i = 0; i < 4; i++)
    20.        {
    21.            cout << number1[i];
    22.        }
    23.        printf(" - ");
    24.        for (int i = 0; i < 4; i++)
    25.        {
    26.            cout << number1[i];
    27.        }
    28.        printf(" = 0000");
    29.    }
    30.    else//其他情况
    31.    {

    32.        while (n != 6174)
    33.        {
    34.            for (int i = 0; i < 4; i++)
    35.            {
    36.                number2[i] = number1[i];
    37.            }
    38.            sort(number1, number1 + 4, cmp);//较大的数
    39.            sort(number2, number2 + 4);//较小的数
    40.            for (int i = 0; i < 4; i++)//输出相减的两个数
    41.            {
    42.                cout << number1[i];
    43.            }
    44.            printf(" - ");
    45.            for (int i = 0; i < 4; i++)
    46.            {
    47.                cout << number2[i];
    48.            }



    49.            int n1 = 0, n2 = 0,t=1;
    50.            for (int i = 3; i >=0; i--)//输出相减结果
    51.            {
    52.                n1 += ((int)number1[i]-48) * t;
    53.                t *= 10;
    54.            }
    55.            t = 1;
    56.            for (int i = 3; i >= 0; i--)
    57.            {
    58.                n2 += ((int)number2[i]-48) * t;
    59.                t *= 10;
    60.            }
    61.            n = n1 - n2;
    62.            printf(" = %04d\n", n);

    63.            int temp = n;
    64.            int i = 0;
    65.            while(i<4)//记录相减的结果
    66.            {
    67.                number1[i++] = (char)(temp % 10+48);
    68.                temp /= 10;
    69.            }
    70.        }

    71.    }
    72.    return 0;
    73. }
    复制代码


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 1801 天

    连续签到: 5 天

    [LV.Master]测试大本营

    2#
    发表于 2020-9-8 09:41:05 | 只看该作者
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-10-22 14:23
  • 签到天数: 1007 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
    发表于 2020-9-8 10:35:28 | 只看该作者
    参考1楼的链接~~
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-9-30 15:02
  • 签到天数: 751 天

    连续签到: 2 天

    [LV.10]测试总司令

    4#
    发表于 2020-9-8 10:35:48 | 只看该作者
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 10:10
  • 签到天数: 1516 天

    连续签到: 5 天

    [LV.Master]测试大本营

    5#
    发表于 2020-9-8 10:39:51 | 只看该作者
    测试点在哪里??
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 07:28
  • 签到天数: 2812 天

    连续签到: 5 天

    [LV.Master]测试大本营

    6#
    发表于 2020-9-8 14:28:44 | 只看该作者
    ,没头啊
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-17 18:46 , Processed in 0.066364 second(s), 21 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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