首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数组排序一个简单的小疑问大家给看一上

2012-09-06 
数组排序一个简单的小疑问大家给看一下#include stdio.hvoid main(void){void reversal()static int a[

数组排序一个简单的小疑问大家给看一下
#include <stdio.h>  
  
void main(void)  
{  
  
void reversal();  
static int a[10] = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */ 
int i;  
for (i=0;i<10;i++)  
{  
printf("%d ",a);  
}  
printf("\n");  
reversal(a,10); /* 调用自定义涵数进行反向显示排序,并把数组a的起始地址传送给形式参数x */ 
  
for (i=0;i<10;i++)  
{  
printf("%d ",a);  
}  
printf("\n");  
  
}  
  
void reversal(x,n)  
int x[],n; /* 定义形式参数 */ 
{  
int m=(n-1)/2; /* 计算10个数需要循环几次,因为是两两调换第一个数组是x[0]故应该是int(9/2) */ 
int temp,i,j; /* 建立零时变量temp用于每次交换处理时零时存储x的值 */ 
for (i=0;i<=m;i++)  
{  
j=n-1-i; /* 反向计算出被调换的数组下标,例如x[0] 对应的x[n-1-i]就是x[9] */
temp=x;
x=x[j];
x[j]=temp;
 
}  
}  
  问题就是自定义函数for循环里的调换语句 temp=x x不是数组的首地址吗 地址怎么能赋值给一个整型变量呢 书上出错了?


[解决办法]

C/C++ code
void reversal(x,n)   int x[],n; /* 定义形式参数 */  {       int m=(n-1)/2; /* 计算10个数需要循环几次,因为是两两调换第一个数组是x[0]故应该是int(9/2) */      int temp,i,j; /* 建立零时变量temp用于每次交换处理时零时存储x的值 */      for (i=0;i<=m;i++)       {           j=n-1-i; /* 反向计算出被调换的数组下标,例如x[0] 对应的x[n-1-i]就是x[9] */         temp=x[i];         x[i]=x[j];         x[j]=temp;      }   }
[解决办法]
调试一下 问题就都出来了 for循环都不对
[解决办法]
我刚在vs中试了一下,程序运行结果出错。。。

热点排行