首页
社区
课程
招聘
一个简单的c语言问题
发表于: 2010-1-6 03:53 3669

一个简单的c语言问题

2010-1-6 03:53
3669
#include <stdio.h>
#include <math.h>
void main()
{
        void inv(int x[],int n);
                int a[10]={1,2,3,4,5,6,7,8,9,0};
        int i;
        printf("交换以前的数为 \n");
        for(i=0;i<10;i++)
          printf("%d,",a[i]);
          printf("\n");
        inv(a,10);
        printf("交换后的数字排列为\n");
        for(i=0;i<10;i++)
                printf("%d,",a[i]);
        printf("\n");
}
void inv(int x[],int n)
{
        int i,j=0,tmp=0,m=(n-1)/2;
        for(i=0;i<=m;i++);
        {
                j=n-1-i;
                tmp=x[i];
                x[i]=x[j];
                x[j]=tmp;

        }
        return;
}

代码如上,我想交换数字的位置,交换的结果为0,9,8,7,6,5,4,3,2,1
上面的代码在vc++中调试,当调试到for(i=0;i<=m;i++);
这步后,i的值就变为5了,很奇怪,希望大家帮助我,很急!谢谢了!

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
2
你的
for(i=0;i<=m;i++);

多了一个分号。去掉就可以了...
2010-1-6 08:17
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
北极狐狸,你都这么多分了,还在这里抢啊
2010-1-6 08:35
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
#include <stdio.h>
#include <math.h>
void main()
{
  void inv(int x[],int n);
    int a[10]={1,2,3,4,5,6,7,8,9,0};                   //规范一下吧,这个用9
  int i;
  printf("交换以前的数为 \n");
  for(i=0;i<10;i++)
    printf("%d,",a[i]);
    printf("\n");
  inv(a,10);
  printf("交换后的数字排列为\n");
  for(i=0;i<10;i++)
    printf("%d,",a[i]);
  printf("\n");
  getch( );
}
void inv(int x[],int n)
{
  int i,j=0,tmp=0,m=(n-1)/2;
  for(i=0;i<=m;i++);                           //这个分号不能随便乱打的
  {
    j=n-1-i;
    tmp=x[i];
    x[i]=x[j];
    x[j]=tmp;

  }
  return;
}
2010-1-6 08:36
0
雪    币: 208
活跃值: (148)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
#include <stdio.h>

void inv(int x[],int n); //函数声明一般放在外面

void main()
{
  int a[10]={1,2,3,4,5,6,7,8,9,0};
  int i;
  printf("交换以前的数为 \n");
  for(i=0;i<10;i++)
    printf("%d,",a[i]);
    printf("\n");
  inv(a,10);
  printf("交换后的数字排列为\n");
  for(i=0;i<10;i++)
    printf("%d,",a[i]);
  printf("\n");
}
void inv(int x[],int n)
{
  int i,j=0,tmp=0,m=(n-1)/2;
  for(i=0;i<=m;i++) //去掉分号
  {
    j=n-1-i;
    tmp=x[i];
    x[i]=x[j];
    x[j]=tmp;

  }
  return;
}
2010-1-6 09:26
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好容易逮这个会的 那么多人抢分啊 唉
2010-1-6 09:50
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
7
顺便看到就回答一下了。楼主可以不给分我。给其他人吧...
2010-1-6 10:42
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
   难得看到一个能看懂的问题。
2010-1-6 12:51
0
雪    币: 160
活跃值: (56)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
谢谢大家的帮助,我耗时四个小时在他上面,大家的一句话让我豁然开朗!谢谢大家的帮助!
2010-1-6 16:29
0
雪    币: 160
活跃值: (56)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
[QUOTE=xdklzy;740376]#include <stdio.h>

void inv(int x[],int n); //函数声明一般放在外面

void main()
{
  int a[10]={1,2,3,4,5,6,7,8,9,0};
  int i;
  printf("交换以前的数为 \n...[/QUOTE]

谢谢~谢谢你的帮助!
2010-1-6 16:30
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
为分来的。。。可惜晚了
2010-1-7 12:15
0
游客
登录 | 注册 方可回帖
返回
//