| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 912 人关注过本帖
标题:关于“水王争霸赛”的问题
只看楼主 加入收藏
yjl19891023
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-3-14
收藏
 问题点数:0 回复次数:0 
关于“水王争霸赛”的问题
我自己编写了一个程序,在TC上运行很正常,而且结果也是正确的,可是到了VC及gcc-3.3上后,就不能运行了,实在郁闷!~~~(报错是无效内存引用)

我实在是不知道什么地方弄了个无效内存出来,所以想请大家帮着我一块儿找找看……


  程序如下:
#include<stdio.h>
#include<string.h>
int main()
{
    int sum,a,b,c,lenth[1500];
    char ID[1500][40],tiezi[1500][15000],zhuan[15000],m1[15000],m2[15000],IDzhuan[40];

    memset(ID,'\x0',sizeof(ID));
    memset(tiezi,'\x0',sizeof(tiezi));
    memset(lenth,0,sizeof(lenth));
    memset(zhuan,'\x0',sizeof(zhuan));

    scanf("%d",&sum);
    getchar();
    for(a=0;a<sum;a++)   
    {
        gets(ID[a]);
        gets(tiezi[a]);
        lenth[a]=strlen(tiezi[a]);
    }

    for(a=0;a<sum;a++)
        for(b=0;b<sum-1;b++)      
        {
            if(lenth[b]<lenth[b+1])
            {
                strcpy(IDzhuan,ID[b]);
                strcpy(ID[b],ID[b+1]);
                strcpy(ID[b+1],IDzhuan);
                memset(IDzhuan,'\x0',sizeof(IDzhuan));
                strcpy(zhuan,tiezi[b]);
                strcpy(tiezi[b],tiezi[b+1]);
                strcpy(tiezi[b+1],zhuan);
                memset(zhuan,'\x0',sizeof(zhuan));
                c=lenth[b];
                lenth[b]=lenth[b+1];
                lenth[b+1]=c;
            }

            else if(lenth[b]==lenth[b+1])
            {
                strcpy(m1,tiezi[b]);
                strcpy(m2,tiezi[b+1]);

                if(strcmp(m1,m2)<0)
                {
                strcpy(IDzhuan,ID[b]);
                strcpy(ID[b],ID[b+1]);
                strcpy(ID[b+1],IDzhuan);
                memset(IDzhuan,'\x0',sizeof(IDzhuan));
                strcpy(zhuan,tiezi[b]);
                strcpy(tiezi[b],tiezi[b+1]);
                strcpy(tiezi[b+1],zhuan);
                memset(zhuan,'\x0',sizeof(zhuan));
                c=lenth[b];
                lenth[b]=lenth[b+1];
                lenth[b+1]=c;
                }

                else if(strcmp(m1,m2)==0)
                {
                     strcpy(m1,ID[b]);
                     strcpy(m2,ID[b+1]);

                    if(strcmp(m1,m2)<0)
                    {
                strcpy(IDzhuan,ID[b]);
                strcpy(ID[b],ID[b+1]);
                strcpy(ID[b+1],IDzhuan);
                memset(IDzhuan,'\x0',sizeof(IDzhuan));
                strcpy(zhuan,tiezi[b]);
                strcpy(tiezi[b],tiezi[b+1]);
                strcpy(tiezi[b+1],zhuan);
                memset(zhuan,'\x0',sizeof(zhuan));
                c=lenth[b];
                lenth[b]=lenth[b+1];
                lenth[b+1]=c;
                    }
                }
            }
        }

    for(a=0;a<sum;a++)        
        printf("%s\n",ID[a]);

}

在线等待……
搜索更多相关主题的帖子: 水王争霸赛 内存 memset sizeof int 
2008-03-22 11:28
快速回复:关于“水王争霸赛”的问题
数据加载中...
 
   



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

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