C语言顺序表里的小疑点
C语言顺序表里的小问题
一个几乎很菜的问题……
一个小程序:
#include<stdio.h>
typedef struct list{
char elem[100]; //静态线性表
int length; //表的实际长度
}SqList; //顺序表的类型名
void main()
{
int i;
SqList list;
printf("请输入长度值为:");
scanf("%d",&list.length);
printf("请输入元素值为:");
for(i=0;i<list.length;i++)
{
scanf("%c",&list.elem[i]);
}
for(i=0;i<list.length;i++)
{
printf("%c",list.elem[i]);
}
printf("\n");
}
为什么当输入长度为7、输入abcdefg时,输出只有abcdef。
输出永远比长度少1?
------解决方案--------------------
scanf("%c",&list.elem[i]);
第一个元素把上面的回车读进去了
------解决方案--------------------
scanf("%d",&list.length);
fflush(stdin);
------解决方案--------------------
之间加个
getchar();//吃掉回车.
------解决方案--------------------
之间加个
getchar();//吃掉回车.
这是一种方法,还有很多种方法
一个几乎很菜的问题……
一个小程序:
#include<stdio.h>
typedef struct list{
char elem[100]; //静态线性表
int length; //表的实际长度
}SqList; //顺序表的类型名
void main()
{
int i;
SqList list;
printf("请输入长度值为:");
scanf("%d",&list.length);
printf("请输入元素值为:");
for(i=0;i<list.length;i++)
{
scanf("%c",&list.elem[i]);
}
for(i=0;i<list.length;i++)
{
printf("%c",list.elem[i]);
}
printf("\n");
}
为什么当输入长度为7、输入abcdefg时,输出只有abcdef。
输出永远比长度少1?
------解决方案--------------------
scanf("%c",&list.elem[i]);
第一个元素把上面的回车读进去了
------解决方案--------------------
scanf("%d",&list.length);
fflush(stdin);
------解决方案--------------------
之间加个
getchar();//吃掉回车.
------解决方案--------------------
之间加个
getchar();//吃掉回车.
这是一种方法,还有很多种方法