为什么getchar()不让小弟我输入字符,而小弟我调试的时候,看到select自动为‘10’了,求大神解答?
为什么getchar()不让我输入字符,而我调试的时候,看到select自动为‘10’了,求大神解答??
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXSIZE 5
void Choice_Sort(int *p,int len);
void Insert_Sort(int *p,int len);
void Select_Sort(int *p,int len);
int main()
{
int i=0,a[MAXSIZE+1];
printf("请输入您要排序的数字:");
for(i=1;i<=MAXSIZE;i++)
scanf("%d",&a[i]);
Choice_Sort(a,MAXSIZE);
for(i=1;i<=MAXSIZE;i++)
printf("%2d",a[i]);
return 0;
}
//选择哪一种排序方式
void Choice_Sort(int *p,int len)
{
char select;
printf("########1、直接插入排序#########\n");
printf("########2、冒泡排序#############\n");
printf("########3、直接选择排序#########\n");
printf("请选择您所需要的排序方式:(按Q(q)退出)");
select=getchar();
printf("%c",select);
while((select!='Q')&& (select!='q'))
{
switch(select)
{
case '1':Insert_Sort(p,len);
break;
case '2':Bubble_Sort(p,len);
break;
case '3':Select_Sort(p,len);
break;
default:
printf("您选择了错误的选项!抱歉!");
break;
}
select=getchar();
}
}
//直接插入排序
void Insert_Sort(int *p,int len)
{
int i,j;
for(i=2;i<=len;i++)
{
p[0]=p[i];//p[0]作为监视哨,存储待排序的数字
j=i-1;
while(p[0]<p[j]&&j>0)
{
p[j+1]=p[j];
j--;
}
p[j+1]=p[0];
}
}
//冒泡排序
void Bubble_Sort(int *p,int len)
{
int i,temp,j,flag;
for(i=1;i<len;i++)
{
flag=1;//交换标志,flag=1表示未交换
for(j=i;j<len-i;j++)
if(p[j]>p[j+1])
{
temp=p[j+1];
p[j+1]=p[j];
p[j]=temp;
flag=0;
}
if(flag==0) break;
}
}
//直接选择排序
void Select_Sort(int *p,int len)
{
int i,j,k;
for(i=1;i<len;i++)
{
k=i;
for(j=i+1;j<=len;j++)
if(p[j]<p[k])
k=j;
if(k!=j)
{
p[0]=p[i];
p[i]=p[k];
p[k]=p[0];
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXSIZE 5
void Choice_Sort(int *p,int len);
void Insert_Sort(int *p,int len);
void Select_Sort(int *p,int len);
int main()
{
int i=0,a[MAXSIZE+1];
printf("请输入您要排序的数字:");
for(i=1;i<=MAXSIZE;i++)
scanf("%d",&a[i]);
Choice_Sort(a,MAXSIZE);
for(i=1;i<=MAXSIZE;i++)
printf("%2d",a[i]);
return 0;
}
//选择哪一种排序方式
void Choice_Sort(int *p,int len)
{
char select;
printf("########1、直接插入排序#########\n");
printf("########2、冒泡排序#############\n");
printf("########3、直接选择排序#########\n");
printf("请选择您所需要的排序方式:(按Q(q)退出)");
select=getchar();
printf("%c",select);
while((select!='Q')&& (select!='q'))
{
switch(select)
{
case '1':Insert_Sort(p,len);
break;
case '2':Bubble_Sort(p,len);
break;
case '3':Select_Sort(p,len);
break;
default:
printf("您选择了错误的选项!抱歉!");
break;
}
select=getchar();
}
}
//直接插入排序
void Insert_Sort(int *p,int len)
{
int i,j;
for(i=2;i<=len;i++)
{
p[0]=p[i];//p[0]作为监视哨,存储待排序的数字
j=i-1;
while(p[0]<p[j]&&j>0)
{
p[j+1]=p[j];
j--;
}
p[j+1]=p[0];
}
}
//冒泡排序
void Bubble_Sort(int *p,int len)
{
int i,temp,j,flag;
for(i=1;i<len;i++)
{
flag=1;//交换标志,flag=1表示未交换
for(j=i;j<len-i;j++)
if(p[j]>p[j+1])
{
temp=p[j+1];
p[j+1]=p[j];
p[j]=temp;
flag=0;
}
if(flag==0) break;
}
}
//直接选择排序
void Select_Sort(int *p,int len)
{
int i,j,k;
for(i=1;i<len;i++)
{
k=i;
for(j=i+1;j<=len;j++)
if(p[j]<p[k])
k=j;
if(k!=j)
{
p[0]=p[i];
p[i]=p[k];
p[k]=p[0];