这程序哪不对

来源:百度知道 编辑:UC知道 时间:2024/06/07 02:52:47
在排量那里输入小数时,下一项油耗就跳过了不能输入#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int shoudsave=0; //
struct car
{
char num[10];//编号
char name[20];
char place[4];
int price;
float displa[4];
int fuel;

char neartime[10];//最近更新时间
};
typedef struct node
{
struct car data;
struct node *next;
}Node,*Link;
void menu()
{
printf("\t1输入汽车资料\t\t\t\t\t2删除汽车资料\n");
printf("\t7排序汽车成绩\t\t\t\t\t8保存汽车资料\n");
printf("\t9获取帮助信息\t\t\t\t\t0退出系统\n");
}
void printstart()
{
printf("-----------------------------------------------------------------------\n");
}
void Wrong()
{
printf("\n=====>提示:输入错误!\n");
}

printf("请你输入名称:");
scanf("%s",p->data.name);
getchar();
printf("请你输入产地:");
scanf("%s",p->data.place);
getchar();
printf("请你输入价格:");
scanf("%d",&p->data.price);
// getchar(); //这里注释掉就可以了
printf("请你输入排量:");
scanf("%f",&p->data.displa);
// getchar(); //这里注释掉
printf("请你输入油耗:");
scanf("%d",&p->data.fuel);
// getchar(); //这里注释掉

这么说吧`2个错误
第一个:
getchar() 在这里的作用是用来接受 缓存区里的 /n
/n 是来自于 %s 的输入结束判断符
所以不是%s 就可以不用这样

第二个:
scanf("%lf", a);
请注意是 %lf ` 而不是 %f

同时介绍:
fflush(stdio);
用来刷出缓存区

这是你car的定义,
struct car
{
char num[10];//编号
char name[20];
char place[4];
int price;
float displa[4];
int fuel;

char neartime[10];/