| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1817 人关注过本帖
标题:为什么数组元素没有向前移一位?
只看楼主 加入收藏
Celavia
Rank: 2
等 级:论坛游民
帖 子:34
专家分:34
注 册:2010-3-18
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
为什么数组元素没有向前移一位?
#include"stdio.h"
#include"string.h"
void test(char str[],int n)
{
    char temp;int i;
    temp=str[0];
    for(i=0;i>n-1;i++)
        str[i]=str[i+1];
    str[n-1]=temp;
   
}
void main()
{
    char s[6]="abcde";
    int i,n=3,len;
    len=strlen(s);
    printf("\n");
test(s,len);
    puts(s);
}
为什么数组元素没有向前移一位呢?
搜索更多相关主题的帖子: 元素 
2010-04-27 21:59
kingsroot
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:284
专家分:1159
注 册:2010-3-28
收藏
得分:5 
#include"stdio.h"
#include"string.h"
void test(char str[],int n)
{
    char temp;int i;
    temp=str[0];
    for(i=0;i>n-1;i++)  //改成i < n - 1
        str[i]=str[i+1];
    str[n-1]=temp;
   
}
void main()
{
    char s[6]="abcde";
    int i,n=3,len;
    len=strlen(s);
    printf("\n");
test(s,len);
    puts(s);
}
2010-04-27 22:07
zhanfffmmm
Rank: 5Rank: 5
等 级:职业侠客
帖 子:238
专家分:343
注 册:2009-10-16
收藏
得分:0 
n=3好像没有用啊,你实现的是字符比较大小吗?
2010-04-27 22:13
zhanfffmmm
Rank: 5Rank: 5
等 级:职业侠客
帖 子:238
专家分:343
注 册:2009-10-16
收藏
得分:5 
#include"stdio.h"
#include"string.h"
void test(char str[],int n)
{
    char temp;
    int i,j;
    temp=str[0];
    for(i=0;i<n-1;i++)
       for(j=i;j<n;j++)
       {
        temp=str[i];
        str[i]=str[j];
        str[j]=temp;
       }
}
void main()
{
    char s[6]="abcde";
    int i,len;
    len=strlen(s);
    printf("\n");
    test(s,len);
    puts(s);
}
交换位置。edcba
2010-04-27 22:23
Celavia
Rank: 2
等 级:论坛游民
帖 子:34
专家分:34
注 册:2010-3-18
收藏
得分:0 
回复 2楼 kingsroot
错了错了,自己真不小心的!
2010-04-27 22:24
kingsroot
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:284
专家分:1159
注 册:2010-3-28
收藏
得分:0 
回复 4楼 zhanfffmmm
那就结题吧  哈哈
2010-04-27 22:28
zjhwade
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2010-4-21
收藏
得分:0 
#include"stdio.h"
#include"string.h"
void test(char str[],int n)
{
    char temp;int i;
    temp=str[0];
    for(i=0;i<n-1;i++)
        str[i]=str[i+1];
    str[n-1]=temp;
   
}
void main()
{
    char s[6]="abcde";
    int i,n=3,len;
    len=strlen(s);
    printf("\n");
test(s,len);
    puts(s);
}


你的意思是不是,将字符向前移一位,然后最后一个数组元素的值等于原来第一个元素的值啊?
要是这样的话,我改了一下你循环里的循环条件。
主要没看懂你这个程序具体要干什么……

2010-04-27 22:30
chuanchuanyj
Rank: 2
等 级:论坛游民
帖 子:9
专家分:19
注 册:2010-4-17
收藏
得分:0 
#include"stdio.h"
#include"string.h"
test(char b[],int n)
{
       int i;
       char c;
    for(i=0;i<n/2;i++)
      {
           c=b[i];
       b[i]=b[n-i-1];
       b[n-i-1]=c;
      }
    for(i=0;i<n;i++)
      printf("%c ",b[i]);
   
}
void main()
{
    char s[6]="abcde";
    int len;
    len=strlen(s);
    test(s,len);
} 试试看吧··
2010-04-27 23:28
aiyinsitan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:183
专家分:177
注 册:2010-4-22
收藏
得分:0 
#include"stdio.h"
#include"string.h"
void test(char str[],int n)
{
    char temp;int i;
    for(i=0;i<=n-1;i++)
        str[i]=str[i+1];
   
}
void main()
{
    char s[6]="abcde";
    int i,n=3,len;
    len=strlen(s);
    printf("\n");
test(s,len);
    puts(s);
}
2010-04-28 13:41
快速回复:为什么数组元素没有向前移一位?
数据加载中...
 
   



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

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