scjylxs scjylxs
关注数: 17 粉丝数: 38 发帖数: 2,440 关注贴吧数: 15
初学者第四帖-线性链表部分 建立一个存储多名学生通信录的线性链表,学生人数由用户输入,其中通信录包括序号、姓名和电话号码,然后在屏幕上输出结果。 【解题步骤】 ① 定义链表结点的数据类型为结构体类型 ② 定义指向链表头的指针变量,即头指针 ③ 调用fncreate函数创建结点 ④ 调用fnprint函数输出结点中的数据 fncreate函数的算法: 定义2个结点类型的指针变量、循环变量和结点个数变量 输入结点个数 构造循环,动态申请结点存储空间,输入数据创建结点,并与尾结点相链接。 输出链表的函数算法: 定义结点类型指针变量,并使之指向头指针。 构造循环,输出链表各结点数据。 【问题】 调试下面的程序代码,系统总是提醒printf没有定义,后面的scant也提示没有定义,弄不明白究竟哪里错了,这些代码反反复检查了也没发现哪里不对,请高手解惑,运行我下面的代码看看问题究竟出在哪里了? 【程序代码】 #include "stdio.h" #include "malloc.h" struct node { int iorder; char chname[15]; char chtel[15]; struct node *pnext; }; struct node *phead; void fncreat() /*创建结点的函数*/ { struct node *pfront,*pback; int i,inum; printf("请输入学生人数"); scanf("%d",&inum); for(i=0;i<inum;i++) { pfront=(struct node *)malloc(sizeof(struct node)); if(i==0) phead=pfront; /*第一个结点*/ else pback->pnext=pfront; /*不是第一个结点,则链接到链表的最后*/ scanf("%d%s%s",&pfront->iorder,pfront->chname,pfront->chtel); pfront->pnext=NULL; /*新结点的指针域赋空值NULL*/ pback=pfront; } } void fnprint() /*输出链表的子函数*/ { struct node *pfront; pfront=phead; while(pfront!=NULL) { printf("\n序号:%d,姓名:%s,电话:%s", pfront->iorder,pfront->chname,pfront->chtel); pfront=pfront->pnext; } int main() { fncreat(); /*创建链表*/ fnprint(); /*输出链表*/ }
初学者疑问帖-关于二进制文件读写的问题! 首先申明,我不是来扰乱秩序的,也不是故意来给高手添麻烦的,好心人请留步,给初学的我指点指点迷津。 首先讲问题,下面是一个从键盘输入5个数100 20 40 56 88,然后写入二进制文件test.dat。我在调试时查看数组元素的值,写入文件之前各元素的值为100 20 40 56 88,写入文件正常。下面是实现这个功能的程序代码,能正常运行。 #include "stdio.h" #include "stdlib.h" int main() { int iarray[5]; int i; FILE *fp; fp=fopen("test.dat","wb"); if(fp==NULL) { printf("不能打开此文件"); exit(0); } printf("请输入5个整数:"); for(i=0;i<5;i++) /*输入5个整数存放到数组中*/ scanf("%d",&iarray[i]); fwrite(iarray,2*5,1,fp); /*将数组中的5个整数写入文件*/ fclose(fp); } 下面这段程序代码是:编写一程序从个程序写入磁盘的文件test.dat中读取数据并显示在屏幕上。程序代码能正常执行。只是显示在屏幕上的结果前两个数的值正常是100 20 但从第三个数开始结果就是一个很大负整数,第4,第5个数是很大的正整数。我试了很多办法,都解决不了这个问题,在这里卡壳了,请熟悉的朋友帮我分析分析,究竟是什么原因导致这个结果不正确了。 我用的编译平台是CFree这个C语言编辑平台。 #include "stdio.h" #include "stdlib.h" int main() { int iarray[5]; int i; FILE *fp; fp=fopen("test.dat","rb"); /*以读二进制文件方式打开文件test.dat*/ if(fp==NULL) { printf("不能打开此文件"); exit(0); } fread(iarray,2*5,1,fp); for(i=0;i<5;i++) printf("%d\t",iarray[i]); /*\t表示输入数据后跳到下一个制表位*/ fclose(fp); }
mysql多表检索问题求高手帮忙! 选出每个班的所学课程名称和老师姓名,要求输出:班级名称、课程名称、学时数、老师姓名和课程编号。 select student.class,student.student_no,student.student_name,course.course_name, teaching.course_time,teaching.teacher_name,teaching.course_no from scorejoin student on student.student_no=score.student_no join teaching on teaching.course_no=score.course_no join course on score.course_no=course.course_no order by student.class; class|student_no|student_name|course_name|course_time | teacher_name | course_no | +-------------+------------+----------------+------------------------------+-------------------+-----------------------+-----------------+ | 微机871| 870101| 王小艳 | 数据库原理与应用 | 150 | 瓮正科 | C601 | | 微机871| 870101| 王小艳 | 数据库原理与应用 | 200 | 瓮正科 | C601 | | 微机871| 870102| 司马奋进 | 微机原理与应用 | 220 | 李成刚 | C604 | | 微机871| 870101| 王小艳 | 操作系统 | 100 | 李成刚 | C602 | | 微机872| 870201| 李明 | 数据库原理与应用 | 200 | 瓮正科 | C601 | | 微机872| 870202| 李明 | 数据结构 | 120 | 严明 | C603 | | 微机872| 870201| 李明 | 数据库原理与应用 | 150 | 瓮正科 | C601 | +-------------+------------+----------------+------------------------------+-------------------+-----------------------+----------------+ 下面是建库建表的脚本文件: set names gbk; createdatabase jxgl; use jxgl; /*创建学生表,并输入记录*/ create table student(student_novarchar(10) primary key unique not null,student_name varchar(10),student_oldint(3),student_sex char(2),class varchar(20),pyu varchar(1024)); insert intostudent values('870101','王小艳',18,'女','微机871',null); insert intostudent values('870201','李明',18,'男','微机872',null); insert intostudent values('870102','司马奋进',19,'男','微机871',null); insert intostudent values('870202','李明',18,'女','微机872',null); insert intostudent values('870103','成功',18,'男','微机871',null); /*创建成绩表,并输入记录*/ create tablescore(no int(5) primary key unique not null,student_no varchar(10),course_novarchar(10),score float(3)); insert intoscore values(1,'870101','C601',98.00); insert intoscore values(2,'870102','C604',78.00); insert intoscore values(3,'870201','C601',88.00); insert intoscore values(4,'870101','C602',99.00); insert intoscore values(5,'870202','C603',89.22); /*创建教师授课表,并输入记录*/ create tableteaching(teacher_name varchar(10),course_no varchar(10), course_timeint(3),class varchar(20)); insert intoteaching values('瓮正科','C601',200,'微机871'); insert intoteaching values('李成刚','C602',100,'微机871'); insert intoteaching values('严明','C603',120,'微机871'); insert intoteaching values('李成刚','C604',220,'微机871'); insert intoteaching values('瓮正科','C601',150,'微机872'); /*创建课程表,并输入记录*/ create tablecourse(course_no varchar(10) primary key unique not null,course_namevarchar(30)); insert intocourse values('C601','数据库原理与应用'); insert intocourse values('C602','操作系统'); insert intocourse values('C603','数据结构'); insert intocourse values('C604','微机原理与应用'); insert intocourse values('C605','编译原理');
首页 1 2 下一页