注册 登录
编程论坛 新人交流区

在线求助C语言问题

aiziji27 发布于 2007-10-19 12:57, 409 次点击
下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。
#define NULL 0
struct stud
{
long num;
char name[10];
float score;
struct stud *next;
};
/* …………… comment …………… */
int n;
struct stud create()
{
struct stud *head,*p1,*p2;
n=0;
p1=p2=(struct stud *)malloc(sizeof(struct stud));
scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);
/* ……………comment …………… */
head=NULL;
while(p1!=0)
{
n=n+1;
if(n==1) head=p1;
else p2->next=p1;
p1=(struct stud *)malloc(size(struct stud));
scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);
}
p2->next=NULL;
return(head);
}
3 回复
#2
aiziji272007-10-19 12:59
下面的程序是完成从键盘上输入若干行长度不一的字符串把其存到一个文件名为ttt.txt的磁盘文件上去,再从该文件中输出这些数据到屏幕上, 将其中的小写字母转换成大写字母。然而,该程序是一个不完整的程序,请在下划线空白处将其补充完整,以便得到正确答案,但不得增删原语句。
#include <stdio.h>
main( )
{
int i,flag;
char str[80],c;
FILE *fp;
if((fp=fopen("TTT","w"))==NULL)
{ printf("can't create file\n");
exit(0);
}
for(flat=1;flag;)
{ printf("请输入字符串\n");
gets(str);
fprintf(fp,"%s",str);
printf("是否继续输入?\n");
if((c=getchar()=='N'|| (1) )
flag=0;
getchar();
}
fseek(fp,0,0);
while(fscanf(fp,"%s",str)!=EOF)
{ for(i=0;str[i]!='\0';i++)
if((str[i]>='a'&&(str[i]<='z'))
str[i]=_(2)
printf("%s",str);
}
fclose(fp);
}
还有这一个
#3
aiziji272007-10-19 13:03
大家帮帮忙啊
#4
leicat20032007-10-20 00:28
1