|
5鱼币
//插入数字,并按照从小大排列
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct Arr //定义结构体
{
int num_;//存放数字
struct Arr* next;//指向下一个
};
void getInput(struct Arr* num);//接收数字
void getInput(struct Arr* num)
{
printf("请输入整数:");
scanf("%d", num->num_);//此处报错!!!!!写入位置冲突
}
struct Arr* search(struct Arr* nums, int target);//寻找插入位置
struct Arr* search(struct Arr* nums, int target)
{
struct Arr* num;
num = nums;
while (num->next != NULL && num->next->num_ < target)
{
num = num->next;
}
return num;
}
void insert(struct Arr** nums);//插入新结构体
void insert(struct Arr** nums)
{
struct Arr* num, * temp;
num = (struct Arr*)malloc(sizeof(struct Arr));//新结构体分配内存空间
if (num == NULL)
{
printf("内存分配失败!");
exit(1);
}
getInput(num);//新结构体接收数字
if (*nums != NULL)//插入
{
temp = search(*nums, num->num_);
num->next = temp->next;
temp->next = num;
}
else
{
*nums = num;
num->next = NULL;
}
}
void printNum(struct Arr* nums);//打印
void printNum(struct Arr* nums)
{
struct Arr* num;
num = nums;
while (num != NULL)
{
printf("%d\n", num->num_);
num = num->next;
}
}
int main()
{
struct Arr* nums = NULL;
insert(&nums);
printNum(nums);
return 0;
}
蓝色标记的位置出错,麻烦大佬给看看为什么这样
printf("", 变量名)
scanf("", 地址)
scanf("%d", &num->num_);//此处报错!!!!!写入位置冲突
|
最佳答案
查看完整内容
printf("", 变量名)
scanf("", 地址)
scanf("%d", &num->num_);//此处报错!!!!!写入位置冲突
|