c - 为什么无论输入A或D输出都是和原来输入的一样?

查看:83
本文介绍了c - 为什么无论输入A或D输出都是和原来输入的一样?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

    #include<stdio.h>
    void choice_A(int a[],int n);
    void choice_D(int a[],int n);
    int main()

{
    int a[11],i,n;
    char str;

    n=10;
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);

    scanf("%c",&str);
    if(str=='A')
        choice_A(a,n);
    else if(str=='D')
        choice_D(a,n);

    for(i=0;i<10;i++)
        printf("%d ",a[i]);


}
void choice_A(int a[],int n)
{
    int i,j,t;

    for(i=1;i<n;i++)
        for(j=0;j<n-i;j++){
            if(a[j]>a[j+1])
                t=a[j];a[j]=a[j+1];a[j+1]=t;
        }
}
void choice_D(int a[],int n)
{
    int i,j,t;

    for(i=1;i<n;i++)
        for(j=0;j<n-i;j++){
            if(a[j]<a[j+1])
                t=a[j];a[j]=a[j+1];a[j+1]=t;
        }
}

解决方案

因为你读到的str既不是A也不是D,不信你print出来试试

scanf("%c",&str);加一句while(getchar()!=10);

这篇关于c - 为什么无论输入A或D输出都是和原来输入的一样?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆