c - 为什么无论输入A或D输出都是和原来输入的一样?
本文介绍了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屋!
查看全文