鱼C论坛

 找回密码
 立即注册
查看: 5682|回复: 16

这段C代码神马意思

[复制链接]
发表于 2011-6-15 14:21:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#include<stdlib.h>
#define ERROR 0
#define OK 1
struct STU
{
       char name[20];
       char stuno[10];
       int age;
       int score;
}stu[50];
struct LIST
{
       struct STU stu[50];
       int length;
}L;

int printlist(struct LIST L)
{
    int i;
    printf("name stuno age score\n");
    for(i=0;i<L.length;i++)
    printf("%s %s\t%d\t%d\n",L.stu[i].name,L.stu[i].stuno,L.stu[i].age,L.stu[i].score);
    printf("\n");
}

int listinsert(struct LIST *L,int i,struct STU e)
{
    struct STU *p,*q;
    if(i<1||i>L->length+1)
    return ERROR;
    q=&(L->stu[i-1]);
    for(p=&L->stu[L->length-1];p>=q;--p)
    *(p+1)=*p;
    *q=e;
    ++L->length;
    return OK;
} /*ListInsert Before i*/

main()
{
      struct STU e;
      L.length=0;
      strcpy(e.name,"zmofun");
      strcpy(e.stuno,"100001");
      e.age=80;
      e.score=1000;
      listinsert(&L,1,e);
      printlist(L);
      printf("List length now is %d.\n\n",L.length);
      
      strcpy(e.name,"bobjin"); 
      strcpy(e.stuno,"100002"); 
      e.age=80; 
      e.score=1000; 
      listinsert(&L,1,e); 
      printlist(L); 
      printf("List length now is %d.\n\n",L.length); 
      getch();
}

正在看数据结构,这才第一张就看不懂。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-15 19:55:18 | 显示全部楼层
顶起来。。看看谁解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-18 10:52:31 | 显示全部楼层
#include<stdio.h>
#include<stdlib.h>

#define ERROR 0

#define OK 1

/*************************************/
/*********定义学生信息的结构******/
/*************************************/
struct STU
{

       char name[20];      //姓名
       char stuno[10];     //学号
       int age;            //年龄
       int score;          //分数
}stu[50];


/*************************************/
/*******定义顺序存储的线性表******/
/*************************************/
struct LIST
{
       struct STU stu[50];    //学生信息
       int length;            //学生的个数
}L;


/*************************************/
/*********输出所有学生的信息*******/
/*************************************/
int printlist(struct LIST L)
{
    int i;
    printf("name stuno age score\n");

    for(i=0;i<L.length;i++)
         printf("%s %s\t%d\t%d\n",L.stu[i].name,L.stu[i].stuno,L.stu[i].age,L.stu[i].score);

    printf("\n");
}


/*********************************************/
/*在线性表第i个位置上插入一个学生信息e*/
/********************************************/
int listinsert(struct LIST *L,int i,struct STU e)
{
    struct STU *p,*q;       //定义两个指向STU结构的指针变量

    if(i<1||i>L->length+1)  //非法情况的处理
          return ERROR;

    q=&(L->stu[i-1]);    //将线性表中第i位置上的地址赋给指针变量q
    

   /*将线性表中第i位置之后的所有学生向后移动一位*/
    for(p=&L->stu[L->length-1];p>=q;--p)
         *(p+1)=*p;

    *q=e;
    ++L->length;
    return OK;
} /*ListInsert Before i*/



main()
{
      struct STU e;  //定义一个学生信息e
      L.length=0;    //初始化线性表

     /****************/
     /*给学生e赋值*/
     /***************/
      strcpy(e.name,"zmofun");
      strcpy(e.stuno,"100001");
      e.age=80;
      e.score=1000;

      listinsert(&L,1,e);  //将学生e插入到线性表的第1个位置

      printlist(L);  //输出线性表中的内容

      printf("List length now is %d.\n\n",L.length);  //线性表的长度

          
     /****************/
     /*给学生e赋值*/
     /***************/
      strcpy(e.name,"bobjin"); 
      strcpy(e.stuno,"100002"); 
      e.age=80; 
      e.score=1000; 

      listinsert(&L,1,e);  //将学生e插入到线性表的第1个位置

      printlist(L);   //输出线性表中的内容

      printf("List length now is %d.\n\n",L.length);  //线性表的长度

      getch();
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-20 22:57:43 | 显示全部楼层
本帖最后由 LNH_Sniper 于 2011-6-20 22:58 编辑

是一个顺序表结构的简单应用,包括了添加、插入、求表长等基本操作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-17 00:42:41 | 显示全部楼层
数据结构里面最简单的一种,学C语言的时候最难的一个程序,线性表的操作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-30 20:17:21 | 显示全部楼层

NO!NO!线性表相对于链表来说!那是2个档次的!本人才自学到(栈和队列)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-10 15:20:07 | 显示全部楼层
进来看看是什么!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-28 12:35:39 | 显示全部楼层
数据结构难学吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-27 16:28:04 | 显示全部楼层
太简单了吧...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2014-2-3 03:06:13 | 显示全部楼层
路过学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-8 03:07:11 From FishC Mobile | 显示全部楼层
看不见代码啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-15 19:54:17 | 显示全部楼层
我顶!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-7 00:08:59 | 显示全部楼层
:loveliness::loveliness:虽然我很菜不过还是看懂了,起码英语不难。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-8 00:30:56 | 显示全部楼层
路过 赞一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-23 12:20:24 | 显示全部楼层
我也想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-25 17:59:08 | 显示全部楼层
看了这么长的代码,感觉做程序员太难了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-21 21:27:39 | 显示全部楼层
好长啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 14:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表