| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1373 人关注过本帖
标题:帮忙看看这个程序问题出在哪
只看楼主 加入收藏
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
 问题点数:0 回复次数:12 
帮忙看看这个程序问题出在哪
我自己也做了测试,在较短长度的串中我尚没发现问题,但当提交上去后却总是wrong answer。看了半天没有思绪,还望高手帮忙
/*
题目描述:
给你一个字符串"abcdefg",循环左移两位得到"cdefgab",
循环右移两位得到"fgabcde"

输入:
多组测试数据,每组一行,第一个是int范围内的整数n,
表示要右移的位数,如果n是负数则表示要左移。接着后面
是一个串长小于10000000的字符串。
最后遇到EOF标志的时候结束。

输出:
输出移位后的字符串

样例输入:
2 abcdefg
-2 abcdefg

样例输出:
fgabcde
cdefgab

难度:for beginner
*/

#include <stdio.h>
#include <string.h>
#define MAX 10000000

char ch[MAX];
char *point;

int main()
{
    int n;

    while (scanf("%d %s",&n,ch)!=EOF)
        {
                point=ch;
                //getchar();

                if(n<0)
                {
                   n=(-1*n)%strlen(ch);
                   point+=n;
                   printf("%s",point);
                   *point='\0';
                   printf("%s\n",ch);                  
                }
                else
                {
                   n=n%strlen(ch);
                  
                   while (*(point+n))
                   {
                           point++;
                   }
        
                   printf("%s",point);
        
                   *point='\0';
        
                   while (point!=ch)
                   {
                           point--;
                   }
               printf("%s\n",point);
                }
        }

    return 0;  
}
搜索更多相关主题的帖子: abcdefg 字符串 wrong 
2007-12-03 15:01
yj2822263
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-12-2
收藏
得分:0 
首先程序就有错误啊  定义字符性的话最大只能255  你定义10000000
2007-12-03 17:07
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
/*  数组太大了,可以使用 malloc() 分配空间。*/
/* 如下程序: */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 10000000

int main(void)
{
    char * ar = NULL, ch;
    int n, i, j;
    ar = (char *)malloc(sizeof(char) * MAX); /* 为数组分配内存 */
    if(ar == NULL)
        exit(1);
    ar[0] = '\0';
   
    printf("请输入字符串: ");
    gets(ar);                  /* 足够大-_- */
   
    printf("请输入要如何移动: ");
    while(scanf("%d", &j) == 1)
    {
        while(getchar() != '\n');
        n = strlen(ar);
        j %= n;
        if(j < 0)
        {
            j *= -1;
            ch = ar[j];
            ar[j] = '\0';
            printf("%c%s%s\n", ch, &ar[j + 1], ar);
        }
        else if(j > 0)
        {
            ch = ar[n - j];
            ar[n - j] = '\0';
            printf("%c%s%s\n", ch, &ar[n - j + 1], ar);
        }
        else
            puts(ar);
            
        printf("请输入字符串: ");
        gets(ar);                  /* 足够大-_- */
        printf("请输入要如何移动: ");
    }
   
    free(ar);
    getchar();
    return 0;
}

[[italic] 本帖最后由 cosdos 于 2007-12-3 20:36 编辑 [/italic]]

—>〉Sun〈<—
2007-12-03 17:46
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
但人家的题目就是“一个串长小于10000000的字符串”

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2007-12-03 18:18
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
你把这个数组定义为外部变量``看看``可以不?

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-12-03 18:20
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
当我没说``

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-12-03 18:20
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
n=(-1*n)%strlen(ch);
 point+=n;

point是指针吧```n 是一个数吧

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-12-03 18:23
yj2822263
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-12-2
收藏
得分:0 
不知道LZ什么意思  我就把define max 后面改数字小一点  就可以的呀
2007-12-03 18:32
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
现在的问题是,进行在线测试时,第一次测试可以通过,但第二次时就wrong answer
n=(-1*n)%strlen(ch); 为的是实现例如-100 abc 时输出bca,即数字大于串长的情况

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2007-12-03 18:59
yj2822263
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-12-2
收藏
得分:0 
我又试了下 还是可以的啊 给你看下吧

[[italic] 本帖最后由 yj2822263 于 2007-12-3 20:01 编辑 [/italic]]

未命名.JPG (5.12 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


未命名.JPG (6.7 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2007-12-03 19:58
快速回复:帮忙看看这个程序问题出在哪
数据加载中...
 
   



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

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