| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 281 人关注过本帖
标题:貌似是下标溢出了。。。不理解。。。
取消只看楼主 加入收藏
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
结帖率:58.82%
收藏
已结贴  问题点数:20 回复次数:1 
貌似是下标溢出了。。。不理解。。。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char date[11000][20],temp[20];
    int i=0,p,n,j;
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
    while (scanf("%s",date[n])!=-1)
    {
        n++;
    }
    for (j=0;j<n-1;j++)  //ri
    {
        for (i=0;i<n-j-1;i++)
        {
            for (p=1;p>=0;p--)
            {
                if (date[i][p]>date[i+1][p])
                {
                    strcpy(temp,date[i]);
                    strcpy(date[i],date[i+1]);
                    strcpy(date[i+1],temp);
                }
            }
        }
    }
    for (j=0;j<n-1;j++)  //y
    {
        for (i=0;i<n-j-1;i++)
        {
            for (p=4;p>=3;p--)
            {
                if (date[i][p]>date[i+1][p])
                {
                    strcpy(temp,date[i]);
                    strcpy(date[i],date[i+1]);
                    strcpy(date[i+1],temp);
                }
            }
        }
    }
    for (j=0;j<n-1;j++)  //n
    {
        for (i=0;i<n-j-1;i++)
        {
            for (p=9;p>=6;p--)
            {
                if (date[i][p]>date[i+1][p])
                {
                    strcpy(temp,date[i]);
                    strcpy(date[i],date[i+1]);
                    strcpy(date[i+1],temp);
                }
            }
        }
    }
    for (i=0;i<n;i++)
    {
        printf("%s\n",date[i]);
    }

    return 0;
}

01/01/2012
02/01/2010
02/01/2012
10/01/2010
10/01/2012
01/01/2010
02/10/2000
02/10/2012
01/10/2010
10/10/2010
10/10/2000
02/10/2012
01/10/2010
01/10/2012
02/01/2000
30/01/1999

上面是一组数据
搜索更多相关主题的帖子: include 
2012-11-26 21:20
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
回复 2楼 wp231957
Description
输入不超过10000个日期,把它们按从前到后进行排序。


Input
输入为多行,到EOF结束。

每行一个日期,格式为“mm/dd/yyyy”(月/日/年),其中,月和日都占2个字符位,年占4位。

可以保证输入的日期都是合法的,且都不早于公元1000年。


Output
按从前到后的顺序输出这些日期,每个日期占一行。


Sample Input
01/01/2012
02/01/2010
02/01/2012
10/01/2010
10/01/2012
01/01/2010
02/10/2000
02/10/2012
01/10/2010
10/10/2010
10/10/2000
02/10/2012
01/10/2010
01/10/2012
02/01/2000
Sample Output
02/01/2000
02/10/2000
10/10/2000
01/01/2010
01/10/2010
01/10/2010
02/01/2010
10/01/2010
10/10/2010
01/01/2012
01/10/2012
02/01/2012
02/10/2012
02/10/2012
10/01/2012

HINT

Append Code

-------------
这是oj的问题,提交上去以后
Runtime Error:Segmentation fault
Runtime Error:Segmentation fault
Runtime Error:Segmentation fault
就说这个

不好意思啊 我是上课的时候发的帖子 太匆忙了 没有粘问题  老师说char a[10000][11]应该够,我本来也用的这个,但是出现runtime error,后来改成a[11000][20]还是runtime error,所以。。。。求解。。。
2012-11-29 14:28
快速回复:貌似是下标溢出了。。。不理解。。。
数据加载中...
 
   



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

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