| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 275 人关注过本帖
标题:一个很简单的程序,能运行却没结果,请高手帮帮忙!
收藏  订阅  推荐  打印 
zwqbq
Rank: 1
等级:新手上路
帖子:21
积分:336
注册:2008-9-13
一个很简单的程序,能运行却没结果,请高手帮帮忙!

//设A=(a1,a2...,an)和B=(b1,b2...,bn)均为顺序表,比较A与B大小
#include <stdio.h>
#include <stdlib.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define OVERFLOW 0
#define LEN sizeof(Sqlist)
typedef struct {
    char * elem;
    int length;
    int listsize;
}Sqlist;
void InitList_Sq(Sqlist &L) {
    /*构造一个空的线性表*/
    L.elem=(char *)malloc(LIST_INIT_SIZE * sizeof(char));
    if (!L.elem) exit(OVERFLOW);
    L.length = 0;
    L.listsize = LIST_INIT_SIZE;
    return;
} /*InitList_Sq*/



void Comparison_Sq(Sqlist A, Sqlist B) {
    int i = 0;
    while( i < A.length  && i < B.length )
    {
    if( A.elem[i] < B.elem[i] )
       {
        printf("A < B\n");
      
       }
    else if( A.elem[i] > B.elem[i] )
    printf("A > B\n");
    
    else
       i ++;
    }
    if(A.length < B.length )
    {
        printf("A < B\n");
     
    }
    else if ( A.length > B.length )
    {
        printf("A > B");
        
    }
    else
    {
        printf("A == B");
      
    }
}

void main()
{
    Sqlist A,B;

    int i=0,j=0;
    char flag;

    InitList_Sq(A); //构造空表A
    InitList_Sq(B); //构造空表B
    printf("请输入A的字母序列:\n");
    while(scanf("%c",&flag),A.listsize>=i) {
        if (flag == '\n') break;
        else {
                A.elem[i]=flag;  
                flag = NULL;
                A.length++;
                i++;
             }
        }
    printf("请输入B的字母序列:\n");
    while(scanf("%c",&flag),B.listsize>=j) {
        if (flag == '\n') break;
        else {
            B.elem[j]=flag;
            flag = NULL;
            B.length++;
            j++;} }
    /*比较:*/
    Comparison_Sq(A,B);
  
}
搜索更多相关主题的帖子: 结果  运行  
2008-9-14 16:59
zqx0202
Rank: 1
等级:新手上路
帖子:1
积分:110
注册:2008-9-14

我改了下,现在有结果了
你看看,看是你要的结果吗
#include <stdio.h>
#include <stdlib.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define OVERFLOW 0
#define LEN sizeof(Sqlist)
typedef struct {
    char * elem;
    int length;
    int listsize;
}Sqlist;
void InitList_Sq(Sqlist &L) {
    /*构造一个空的线性表*/
    L.elem=(char *)malloc(LIST_INIT_SIZE * sizeof(char));
    if (!L.elem) exit(OVERFLOW);
    L.length = 0;
    L.listsize = LIST_INIT_SIZE;
    return;
} /*InitList_Sq*/



void Comparison_Sq(Sqlist A, Sqlist B) {
    int i = 0;
    /*
    */
   
    if(A.length < B.length )
    {
        printf("A < B\n");
        
    }
    else if ( A.length > B.length )
    {
        printf("A > B");
        
    }
    else
    {    
        while( i < A.length  && i < B.length )
        {
            if( A.elem[i] < B.elem[i] )
            {
                 printf("A < B\n");
                 break;
            }
            else if( A.elem[i] > B.elem[i] )
            {
                printf("A > B\n");
                break;
            }
        
            else
               i ++;
        }
    if(i-1 > A.length  && i-1 >B.length)
        printf("A == B");
        
    }
}

void main()
{
    Sqlist A,B;
    
    int i=0,j=0;
    char flag;
    
    InitList_Sq(A); //构造空表A
    InitList_Sq(B); //构造空表B
    printf("请输入A的字母序列:\n");
    while(scanf("%c",&flag),A.listsize>=i) {
        if (flag == '\n') break;
        else {
            A.elem[i]=flag;  
            flag = NULL;
            A.length++;
            i++;
        }
    }
    printf("请输入B的字母序列:\n");
    while(scanf("%c",&flag),B.listsize>=j) {
        if (flag == '\n') break;
        else {
            B.elem[j]=flag;
            flag = NULL;
            B.length++;
            j++;} }
    /*比较:*/
    Comparison_Sq(A,B);
    
}
2008-9-14 21:26
zwqbq
Rank: 1
等级:新手上路
帖子:21
积分:336
注册:2008-9-13
回复 3# zqx0202 的帖子

非常感谢!受到你的启发!
2008-9-15 14:49
zwqbq
Rank: 1
等级:新手上路
帖子:21
积分:336
注册:2008-9-13
回复 4# zwqbq 的帖子

我得到了我要的结果!Thanks!
2008-9-15 14:49
zboyi
Rank: 1
等级:新手上路
帖子:1
积分:120
注册:2008-9-10
我怎么运行不了呀/

我在TC2.0下运行修改后的程序.出现错误
在void InitList_Sq(Sqlist &L)这行的L上.
不知道是什么原因/
2008-9-15 21:12
StarWing83
Rank: 12Rank: 12Rank: 12
来自:湖北工业大学
等级:版主
威望:9
帖子:2483
积分:26219
注册:2007-11-16

TC显然是没有引用的……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-9-15 21:40
zwqbq
Rank: 1
等级:新手上路
帖子:21
积分:336
注册:2008-9-13
一个奇怪的错误,不知怎么改,请高手帮帮忙!

问题是:在递增有序的顺序表va中插入元素x,保持顺序表的有序性


#include<stdio.h>
#include<stdlib.h>
#define OVERFLOW 0
#define OK 1
#define LIST_INIT_SIZE
typedef struct{
         int * elem;
         int length;
         int listsize;
} SqList;

InitSqlist(SqList &va)
{
    va.elem=(int*)malloc(sizeof(int));
    if(!va.elem) exit(OVERFLOW);
    va.length=0;
    va.listsize=LIST_INIT_SIZE;
    return OK;
} /*构造一个空表*/

InsertOrderList(SqList va)
{
    int i,x;
    printf("请输入要插入的元素x:");
    scanf("%d",&x);
    if(va.length==va.listsize)
      return (OVERFLOW);
    for(i=va.length-1;va.elem[i]>x&&i>=0;i--) //查找x的插入位置
           va.elem[i+1]=va.elem[i];    //元素后移
           va.elem[i+1]=x;   //插入x
           va.length++; //表长加1
          return OK;
} //InsertOrderList

void main()
{
   SqList va;
   int m,i;
   printf("请输入顺序表va中元素的个数m:");
   scanf("%d",&m);
   printf("请输入顺序表va中递增有序的m个整型数据元素:\n");
   for(i=0;i<m;i++)
     scanf("%d",&va.elem[i]);
int InsertOrderList();
for(i=0;i<va.length;i++)
   printf("%d",va.elem[i]);
}
2008-9-17 12:48
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.054370 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved