逆序输入建立链表并从屏幕输出以及写入指定的文件(在线等)

ishe 2003-09-01 04:49:24
我写了这段代码,vc++编译,链接正常,但输出不如人意请高人指点迷津,3~Q:
//整型,屏幕正确输出,不能文件写入
#include <stdio.h>
#include <io.h>
#include <process.h>
#include <iostream.h>
#include <malloc.h>

typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;

void main()
{
//逆位序输入n个元素的值,建立带表头结点的单链线性表L.
FILE *out;
char outfile[10];
int j;
int i;
LNode *L,*p,*h,*g;

printf("Enter the outfile name:\n");
scanf("%s",outfile);
if((out=fopen(outfile,"w"))==NULL)
{
printf("cannot open outfile\n");
exit(0);
}

L=(LinkList)malloc(sizeof(LNode));
L->next=NULL; //先建立一个带表头结点的单链表
for (i=5;i>0;--i)
{
p=(LinkList)malloc(sizeof(LNode)); //生成新结点
scanf("%d",&p->data); //输入元素值
p->next=L->next;L->next=p; //插入到表头
}
h=L->next; //保存表头
g=L->next;
for(i=1;i<=5;i++)
{

printf("%d\n",h->data);
h=h->next;
}
for(i=1;i<=5;i++)
{
j=g->data;
fputc(j,out);
fputc('\n',out);
g=g->next;

}

fclose(out);
}
=================================================================================+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//字符型,文件,屏幕都不能正确输出??????????????????????????faint
#include <stdio.h>
#include <io.h>
#include <process.h>
#include <iostream.h>
#include <malloc.h>

typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;

void main()
{
//逆位序输入n个元素的值,建立带表头结点的单链线性表L.
FILE *out;
char outfile[10];
int j;
int i;
LNode *L,*p,*h,*g;

printf("Enter the outfile name:\n");
//j=getchar();//此语句用来接收在执行scanf语句时最后输入的回车符
scanf("%s",outfile);
if((out=fopen(outfile,"w"))==NULL)
{
printf("cannot open outfile\n");
exit(0);
}

L=(LinkList)malloc(sizeof(LNode));
L->next=NULL; //先建立一个带表头结点的单链表
for (i=5;i>0;--i)
{
p=(LinkList)malloc(sizeof(LNode)); //生成新结点
scanf("%c",&p->data); //输入元素值
p->next=L->next;L->next=p; //插入到表头

}
h=L; //保存表头
g=L;
for(i=1;i<=5;i++)
{

printf("%c\n",L->data);
L=L->next;
}
for(i=1;i<=5;i++)
{
j=g->next->data;
fputc(j,out);
fputc('\n',out);
g=g->next;
...全文
91 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dragon132 2003-09-01
  • 打赏
  • 举报
回复
上面的还要加一句
#include <stdio.h>
#include <io.h>
#include <process.h>
#include <iostream.h>
#include <malloc.h>

typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;

void main()
{
//逆位序输入n个元素的值,建立带表头结点的单链线性表L.
FILE *out;
char outfile[10];
int j;
int i;
LNode *L,*p,*h,*g;

printf("Enter the outfile name:\n");
//j=getchar();//此语句用来接收在执行scanf语句时最后输入的回车符
scanf("%s",outfile);
j=getchar();
if((out=fopen(outfile,"w"))==NULL)
{
printf("cannot open outfile\n");
exit(0);
}

L=(LinkList)malloc(sizeof(LNode));
L->next=NULL; //先建立一个带表头结点的单链表
for (i=5;i>0;--i)
{
p=(LinkList)malloc(sizeof(LNode)); //生成新结点
scanf("%c",&p->data); //输入元素值
p->next=L->next;L->next=p; //插入到表头

}
h=L; //保存表头
g=L;
L=L->next;
for(i=1;i<=5;i++)
{

printf("%c\n",L->data);
L=L->next;
}
g=g->next; //这里也要舍掉第一个空数据
for(i=1;i<=5;i++)
{
j=g->data;
fputc(j,out);
fputc('\n',out);
g=g->next;
}
do
{
L=h;
h=h->next;
free(L);
}while(h!=NULL);


fclose(out);
}
Dragon132 2003-09-01
  • 打赏
  • 举报
回复
这是第二个

#include <stdio.h>
#include <io.h>
#include <process.h>
#include <iostream.h>
#include <malloc.h>

typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;

void main()
{
//逆位序输入n个元素的值,建立带表头结点的单链线性表L.
FILE *out;
char outfile[10];
int j;
int i;
LNode *L,*p,*h,*g;

printf("Enter the outfile name:\n");
//j=getchar();//此语句用来接收在执行scanf语句时最后输入的回车符
scanf("%s",outfile);
j=getchar(); //这里有个回车符,要接收
if((out=fopen(outfile,"w"))==NULL)
{
printf("cannot open outfile\n");
exit(0);
}

L=(LinkList)malloc(sizeof(LNode));
L->next=NULL; //先建立一个带表头结点的单链表
for (i=5;i>0;--i)
{
p=(LinkList)malloc(sizeof(LNode)); //生成新结点
scanf("%c",&p->data); //输入元素值
p->next=L->next;L->next=p; //插入到表头

}
h=L; //保存表头
g=L;
L=L->next; //L->data为空,舍掉
for(i=1;i<=5;i++)
{

printf("%c\n",L->data);
L=L->next;
}
for(i=1;i<=5;i++)
{
j=g->data;
fputc(j,out);
fputc('\n',out);
g=g->next;
}
do
{
L=h;
h=h->next;
free(L);
}while(h!=NULL);


fclose(out);
}
syuui 2003-09-01
  • 打赏
  • 举报
回复
输出是什么?

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧