凉风何以安 2021-02-28 08:51 采纳率: 0%
浏览 42

为啥我用c与c++写同样一段程序,c的第一个输出总是乱码?

三个整数分别为 A,B,CA,B,C . 这三个数字不会按照这样的顺序给你,但它们始终满足条件: A<B<CA<B<C . 为了看起来更加简洁明了,我们希望你可以按照给定的顺序重新排列它们。

【输入格式】

第一行包含三个正整数 A,B,CA,B,C ,不一定是按这个顺序。这三个数字都小于或等于 100100 。第二行包含三个大写字母 AA 、 BB 和 CC (它们之间没有空格)表示所需的顺序.

【输出格式】

在一行中输出 AA ,BB 和 CC ,用一个 (空格)隔开.


#include<stdio.h>

int main()
{
    int num[3],tem,i,j;
    char A,B,C;
    scanf("%d %d %d",&num[0],&num[1],&num[2]);//数字
    scanf("%c%c%c",&A,&B,&C);//字母
    //冒泡排序
    for(i=0;i<2;i++)
    {
        for(j=i+1;j<3;j++)
        {
            if(num[i]<num[j])
            {
                tem=num[i];
                num[i]=num[j];
                num[j]=tem;
            }
        }
    }
    printf("%d %d %d",num[A-'A'],num[B-'A'],num[C-'A']);
    return 0;
}

//下面是c++

#include<iostream>
#include<algorithm>
using namespace std;
int a[3];
char A,B,C;
int main()
{
    cin>>a[0]>>a[1]>>a[2];
    cin>>A>>B>>C;
    sort(a,a+3);//懒懒_(:з」∠)_排序法
    cout<<a[A-'A']<<" "<<a[B-'A']<<" "<<a[C-'A'];//字母是大写,减去‘A’后得到0(A),1(B),2(C)。
    return 0;
}
  • 写回答

1条回答 默认 最新

  • A_box_of_yogurt 2021-03-01 20:44
    关注

    scanf读入会把换行也读进去

    在两个读入之间加一个getchar();

    
        scanf("%d %d %d",&num[0],&num[1],&num[2]);//数字
        getchar();
        scanf("%c%c%c",&A,&B,&C);//字母
    评论

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示