永发信息网

C语言的程序问题

答案:2  悬赏:80  手机版
解决时间 2021-04-24 14:03

#include"stdio.h"
#include"malloc.h"
#define Max 10000
int *k;//保存最初地址
typedef struct
{
int *elem;
int length;
int listsize;

}sqlist;

void Initlist1(sqlist &L)
{
L.elem=(int*)malloc(Max*sizeof(int));
L.length=0;
L.listsize=Max;
k=L.elem;

}

void Input(sqlist &L)
{

int i,n;
printf("How many do you want(1~10000):\n");
scanf("%d",&n);

printf("Please enter the number:\n");
for(i=0;i<n;i++)
{
scanf("%d",L.elem);
L.elem++;
L.length++;

}


}

void Display(sqlist L)
{
int i;
L.elem=k;
for(i=0;i<L.length;i++)
{
printf("%d ",*L.elem);
L.elem++;
}
printf("\n");
printf("L.length is %d",L.length);
printf("\n");

}

void search(int n,sqlist L)
{
int r=0,i;
for(i=0;i<L.length;i++)
{ r++;
if(n==*L.elem)
printf(" the number's coordinate is %d",r);
if((n!=*L.elem)&&(i==(L.length-1)))
printf(" the number is not in this Array");
}
}

void main()
{ int n,k=0;
char p;
sqlist L;
Initlist1(L);
Input(L);
Display(L);

printf("Do you want to search?(Y/N)\n");

scanf("%c",&p);
if(p=='y'||p=='Y')
{
printf("which number:\n");
scanf("%d",n);
search(n,L);
}
}

为什么电脑把

scanf("%c",&p);
忽略了。直接执行完成?

最佳答案

在scanf("%c",&p);前面加一句getchar();吸收上一次输入的回车符.

全部回答
printf("which number:\n");因为这句里面最后打印了一个回车,scanf把回车读取了,就直接执行完成了。改为这样就行了。 printf("which number:");scanf("%d",n);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
7万左右两厢车哪个好
哪位教下吉他独奏谱怎么看?
执着着一些事容易吗?
结婚早好还是迟好?
怎样学好高中物理和化学啊,他们跟初中有没有
热得快为什么冒烟了?
刘富蔷,谁帮我算算名字得分
上传的图片怎么删除,怎么删除QQ群里面上传的
现在压缩的单机游戏则么安装的
屈臣氏,什么样的柔肤水好用?
穴中人语 试用自己的话概括短文大意
QQ农场的野牛怎么能换好友家停留啊
QQ音速上挂会被封号吗…会被盗吗…
同房后月经来了,请问会怀孕么?
我的手机N72,我下在内存卡里面的东西按装后
推荐资讯
头痛的时候有什么物理方法可以缓解?
怎么关闭家里的驱动防火墙
如果你想让一个人讨厌你,而且不让他知道是故
QQ农场降级问题!
女孩姓张2010年九月五日十点三十分出生的起什
炫舞帮忙配件衣服
电针的波形有哪几种?各主治什么样的疾病?
辩论赛:反方被爱比爱更幸福一辩稿帮忙找找论
谁能告诉我,暮光第二部电影是不是在11月出来
关于减肥 大家来看看
DNF狂战技能
非上市公司是怎么募集股票的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?