永发信息网

3、编程从随机存取文件fei.dat中读取所有数据并求累加和。 4、编程将fei.dat的最后修

答案:1  悬赏:0  手机版
解决时间 2021-04-02 08:43
  • 提问者网友:嘚啵嘚啵
  • 2021-04-01 11:15
3、编程从随机存取文件fei.dat中读取所有数据并求累加和。 4、编程将fei.dat的最后修
最佳答案
  • 五星知识达人网友:平生事
  • 2021-04-01 11:31
#include
#include
//①定义链表数据结构
struct node
{
int num;
struct node *next;
};
//函数声明
struct node *creat();
void print();
main( )
{

struct node *head;
head=NULL; //②建一个空表
head=creat(head);
print(head);
}

struct node*creat(struct node *head)
{
struct node*p1,*p2;
int i=1;
//③利用malloc ( )函数向系统申请分配一个节点
p1=p2=(struct node*)malloc(sizeof(struct node));
printf("请输入值,值小于等于0结束,值存放地址为:p1_ADDR= %d\n",p1);
scanf("%d",&p1->num);
p1->next=NULL;
while(p1->num>0)
{
//④将新节点的指针成员赋值为空。若是空表,将新节点连接到表头;若是非空表,将新节点接到表尾;
if(head==NULL)
head=p1;
else
p2->next=p1;
p2=p1;

p1=(struct node*)malloc(sizeof(struct node));
i=i+1;
printf("请输入值,值小于等于0结束,值存放地址为:p%d_ADDR= %d\n",i,p2);
scanf("%d",&p1->num);
//⑤判断一下是否有后续节点要接入链表,若有转到3 ),否则结束;
}
//==============原来程序更正部分:(多谢@daling_datou提醒)================================
free(p1); //申请到的没录入,所以释放掉
p1=NULL; //使指向空
p2->next = NULL; //到表尾了,指向空
printf("链表输入结束(END)\n");
//==============================================
return head;
}

void print(struct node*head)
{
struct node *temp;
temp=head;

printf("\n\n\n链表存入的值为:\n");
while(temp!=NULL)
{
printf("%6d\n",temp->num);
temp=temp->next;
}
printf("链表打印结束!!");
}追问不用数据结构怎么写出来
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯