在VS2022中创建了一个链表,但是测试时发现输入数据次数不对而且输出是是乱码,但是已经验证相同写法的另一链表存入数据和打印都正常,这是什么原因呢?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
struct app
{
char gender;
int agemin;
int agemax;
long incomemin;
long incomemax;
struct app* next;
};
int main()
{
int i, m;
scanf("%d", &m);
struct app* ahead = NULL;
struct app* acur;
struct app* aprev = NULL;
for (i = 0; i < m; i++)
{
acur = (struct app*)malloc(sizeof(struct app));
if (ahead == NULL)
ahead = acur;
else
aprev->next = acur;
acur->next = NULL;
scanf("%c %d %d %ld %ld", &(acur->gender), &(acur->agemin), &(acur->agemax), &(acur->incomemin), &(acur->incomemax));
aprev = acur;
}
acur = ahead;
for (i = 0; i < m; i++)
{
printf("%c %d %d %ld %ld", acur->gender, acur->agemin, acur->agemax, acur->incomemin, acur->incomemax);
acur = acur->next;
printf("\n");
}
acur = ahead;
while (acur != NULL)
{
acur = ahead;
ahead = acur->next;
free(acur);
acur = acur->next;
}
return 0;
}
下面是运行结果