c语言程序网
㈠ c语言 编写程序
链表创建使用creat函数,每调用一次创建一个节点。第一次调用函数会自己创建头节点内存。
打印输出部分,只要打印第一个节点,只要stuHead->next就可以了。
我这里写循环里,是演示遍历链表,你把break去掉就是打印整个链表。
#include<stdio.h>
#include<malloc.h>
typedef struct stuInfo
{
int id;//学号
char name[10];//姓名
int score;//成绩
struct stuInfo *next;
}SINFO;
int creat(SINFO **stuHead,SINFO**stuTail);//成功返回1,失败返回0
int main()
{
SINFO *stuHead=NULL,*stuTail=NULL;
if(!creat(&stuHead,&stuTail))
return 1;
if(!creat(&stuHead,&stuTail))
return 1;
if(!creat(&stuHead,&stuTail))
return 1;
while(stuHead->next)
{
printf("链表第一个学生信息: ");
printf("学号:%d ",stuHead->next->id);
printf("姓名:%s ",stuHead->next->name);
printf("成绩:%d ",stuHead->next->score);
break;//去掉这个,就是打印链表所有信息,作为参考
stuHead=stuHead->next;
}
return 0;
}
int creat(SINFO **stuHead,SINFO**stuTail)//成功返回1,失败返回0
{
SINFO *sHead=*stuHead,*sTail=*stuTail,*sNew=NULL;
if(!sHead)
{
sHead=(SINFO *)malloc(sizeof(SINFO)),sHead->next=NULL;
if(!sHead)
return 0;//抛出异常
}
sNew=(SINFO *)malloc(sizeof(SINFO));
if(!sNew)
return 0;//抛出异常
printf("请输入学号:"),scanf("%d",&sNew->id);
printf("请输入姓名:"),scanf("%s",sNew->name);
printf("请输入成绩:"),scanf("%d",&sNew->score);
sNew->next=NULL;
if(sHead->next==NULL)
sHead->next=sNew;
else
sTail->next=sNew;
sTail=sNew;
*stuHead=sHead;
*stuTail=sTail;
return 1;
}
㈡ 有没有小白基础的c语言程序设计百度网盘分享
C语言程序设计教程:
http://pan..com/s/1gf7QEMf
网络网盘资源下载
这还有个比较多的
链接: http://pan..com/s/1hsGCfha 密码: xjbr