| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 859 人关注过本帖
标题:一个很简单的程序,能运行却没结果,请高手帮帮忙!
只看楼主 加入收藏
zwqbq
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-9-13
收藏
 问题点数:0 回复次数:7 
一个很简单的程序,能运行却没结果,请高手帮帮忙!
//设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-09-14 16:59
zqx0202
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-9-14
收藏
得分:0 
我改了下,现在有结果了
你看看,看是你要的结果吗
#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-09-14 21:26
zwqbq
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-9-13
收藏
得分:0 
回复 3# zqx0202 的帖子
非常感谢!受到你的启发!
2008-09-15 14:49
zwqbq
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-9-13
收藏
得分:0 
回复 4# zwqbq 的帖子
我得到了我要的结果!Thanks!
2008-09-15 14:49
zboyi
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-9-10
收藏
得分:0 
我怎么运行不了呀/
我在TC2.0下运行修改后的程序.出现错误
在void InitList_Sq(Sqlist &L)这行的L上.
不知道是什么原因/
2008-09-15 21:12
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
TC显然是没有引用的……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-15 21:40
zwqbq
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-9-13
收藏
得分:0 
一个奇怪的错误,不知怎么改,请高手帮帮忙!
问题是:在递增有序的顺序表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-09-17 12:48
快速回复:一个很简单的程序,能运行却没结果,请高手帮帮忙!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.123076 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved