c语言初学者,请各位大侠帮忙看看我的程序错在哪了?
#include<stdio.h>#include<malloc.h>
#include<stdlib.h>
typedef struct PC
{
char pinpai[100];
char xinghao[100];
int jiage;
int shuliang;
}PC,*PPC;
PPC InPut_pc();
void OutPut_pc(PPC pc);
int a;
int main (void)
{
PPC DIANNAO = NULL;
printf("输入电脑种类:");
scanf("%d",&a);
DIANNAO = InPut_pc();
printf("*************************************************************\n");
OutPut_pc(DIANNAO);
return 0;
}
PPC InPut_pc()
{
PPC pc;
int i;
pc = (PPC)malloc(sizeof(pc));
if(NULL == pc)
{
printf("错误!");
exit(-1);
}
for (i = 0; i < a; ++i)
{
printf("请输入电脑品牌:");
scanf("%s",pc->pinpai);
printf("输入电脑的型号:");
scanf("%s",pc->xinghao);
printf("输入电脑的价格:");
scanf("%d",&pc->jiage);
printf("输入台数:");
scanf("%d",&pc->shuliang);
}
return pc;
}
void OutPut_pc(PPC pc)
{
int i;
for (i = 0; i < a; ++i)
{
printf("电脑品牌:");
printf("%s\n",pc->pinpai);
printf("电脑的型号:");
printf("%s\n",pc->xinghao);
printf("电脑的价格:");
printf("%d\n",pc->jiage);
printf("台数:");
printf("%d\n",pc->shuliang);
}
return;
}
怎么输出的总是出入的最后一次的数据?