c语言基础-各位给菜鸟看看在下万分感谢~~

问题描述

各位给菜鸟看看在下万分感谢~~

#include
#include
#define LEN sizeof(struct student)

struct student
{
char name[20];

int num;
double score;
struct student *next;
};

int n;

struct student* creat() //定义函数此函数带回头指针
{
struct student *head;
struct student *p1,*p2;

head=NULL;
n=0;

p1 = p2=(struct student*)malloc(LEN);  //开辟动态的存储空间
printf("输入姓名:");
scanf("%s",&p1->name);
printf("输入学号:");
scanf("%d",&p1->num);
printf("输入成绩:");
scanf("%lf",&p1->score);

while(p1->num!=0)
{
    n++;
    if(n==1) //如果n==1
    {
        head=p1;   //使head指向新开辟的节点

    }
    else
    {
        p2->next=p1;  //如果n!=1 p2为2时指向第一个节点地址
        p2=p1;   //p2指向刚才开辟的节点
    }
    p1=(struct student*)malloc(LEN);
    printf("输入姓名:");
    scanf("%s",&p1->name);
    printf("输入学号:");
    scanf("%d",&p1->num);
    printf("输入成绩:");
    scanf("%lf",&p1->score);
}
p2->next=NULL;   //最后放入NULL

return head;  //返回头指针

}
void print(struct student *head)
{
struct student *p;
int t=1;
printf("n本名单有%d名学生n",n);
p=head;

if(head)
{
    do
    {
        printf("第%d个学生是 n",t++);
        printf("姓名:%sn",p->name);
        printf("学号:%dn",p->num);
        printf("成绩:%lfn",p->score);
        p=p->next; //指向下一个地址
    }while(p!=NULL);
}

}
struct student Inssert(struct student*head,struct student *stu)
{
struct student *p0,*p1,*p2;
p1=head;
p0=stu;

if(head==NULL)//原来的链表是空表
{
    head=p0;
    p0->next=NULL;
}
else
{
    while((p0->num>p1->num)&&(p1->next!=0))
    {
        p2=p1;
        p1=p1->next;
    }
    if(p0->num<=p1->num)
    {
        if(head==p1)
            head=0;
        else
         p2->next=p0;
         p0->next=p1;
    }
    else
    {
        p1->next=p0;
        p0->next=NULL;
    }
    n=n+1;
    return head;
}

}
void main()
{
struct student *head,stu;
head=creat();
head=Inssert(head,&stu);
print(head);
}

时间: 2024-10-23 04:42:24

c语言基础-各位给菜鸟看看在下万分感谢~~的相关文章

编程语言 c语言-新手求指教!用c语言 简单学生成绩统计软件 。万分感谢,编好发到邮箱425572938@.

问题描述 新手求指教!用c语言 简单学生成绩统计软件 .万分感谢,编好发到邮箱425572938@. 实现的任务: (1)每个学生记录中包含学号.姓名和C 语言课设成绩等信息: (2)创建学生记录链表: (3)更新学生记录(插入.排序.删除): (4)能统计各分数段的人数,并以分布图显示: (5)输出学生记录到屏幕. 设计内容: 1. 学生记录应该包括学号.姓名.C 语言课设成绩等信息,是本程序的核心数据结构,定 义如下: typedef struct { char num[11]; /*学号*

语言 基础-C语言,基础理解,请老师,朋友留步。

问题描述 C语言,基础理解,请老师,朋友留步. error C2105: '++' needs l-value 这个错误对于 char p[10]; ++p; 出现这个错误我能理解明白: 但是,对于下面这个:++(x+1);同样出现:error C2105: '++' needs l-value:学生就不明白了,希望有老师或者C语言基础理解好的朋友讲解一下:百度未查到此类情况: 新来的没悬赏: 解决方案 char p[10],p里面存储的就是这个长度为10的数组的第一个元素的地址,并且p上面存储

c语言-代码位置不同为什么会报错?【C语言基础问题】

问题描述 代码位置不同为什么会报错?[C语言基础问题] gets()语句放在第8行会报错,第10行就不会报错,菜鸟不明白是怎么回事了,求解. 代码如下: # include <stdio.h> # include <string.h> int main() { char string[100]; char c; gets(string); int i, num = 0, word = 0; //gets(string); for(i = 0; (c = string[i]) !=

【软考教程】程序设计语言基础

继续软考教程的学习,在第1章,我们主要是对计算机的组成和工作原理做了一定了解,可以说,在他的带领下,我们对计算机硬件方面的知识,有了更加坚实的基础. 第2章,程序设计语言基础知识.不看内容,光从标题来看,并不会觉得陌生."程序设计语言",至今,我们已经接触过不止一种了,从最初的VB.到后来的VB.NET.C#.C++,软考前个阶段,我们还见到了早有耳闻的Java世界. 那么,下面就跟随着"设计语言"的脚步,一起发现编程路上美丽的风光吧. 想要对程序设计语言有个宏观上

HTML进阶应用技巧(一)HTML语言基础

技巧 一.为什么要学习HTML? 近两年来,许多公司开发出了图形化的HTML开发工具,使得网页的制作变得非常简单.如微软公司推出的 Microsoft FrontPage, Adobe公司推出的 Adobe Pagemill, Micromedia公司推出的Dreamweaver等编辑工具,都被称为"所见即所得"的网页制作工具.这些图形化的开发工具可以直接处理网页,而不用书写费劲的标记.这使得用户在没有HTML语言基础的情况下,照样可以编写网页.这时,编写HTML文档的任务由开发工具替

HTML语言基础

一.为什么要学习HTML? 近两年来,许多公司开发出了图形化的HTML开发工具,使得网页的制作变得非常简单.如微软公司推出的 Microsoft FrontPage, Adobe公司推出的 Adobe Pagemill, Micromedia公司推出的Dreamweaver等编辑工具,都被称为"所见即所得"的网页制作工具.这些图形化的开发工具可以直接处理网页,而不用书写费劲的标记.这使得用户在没有HTML语言基础的情况下,照样可以编写网页.这时,编写HTML文档的任务由开发工具替你完成

[转贴]Oracle PL/SQL语言基础

oracle|sql语言 [转贴]Oracle PL/SQL语言基础 Oracle PL/SQL语言基础   PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及如何设计并执行一个PL/SQL程序.    PL/SQL的优点    从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有

Oracle PL/SQL语言基础

oracle|sql语言 Oracle PL/SQL语言基础  2002-8-23   Oracle PL/SQL语言基础 PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及如何设计并执行一个PL/SQL程序. PL/SQL的优点 从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独

C++语言基础-入门简介

C++是个强大的语言,可以用于做别的语言做不了的工作.但是,这种强大功能是有代价的.开始使用C++时,你可能会遇到内存溢出和访问失效等问题,使程序死机.这里用最简短的篇幅介绍C++语言基础.C++语言本身有专著介绍,这种书还特别厚,所以别指望我能用三言两语说清楚.读者学完本书并使用C++ Builder一般时间之后,最后对C++语言再作更深入的了解. C++可以最充分地利用面向对象编程(OOP)的优势.OOP不只是一个新名词,而有它的实际意义,可以生成可复用的对象.新术语 对象(object),