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

问一个c语言程序的执行过程,该如何解决

2012-02-11 
问一个c语言程序的执行过程请选出以下程序的输出结果#include stdio.hfun(s,n1,n2)int*s,n1,n2{inti,j,

问一个c语言程序的执行过程
请选出以下程序的输出结果
#include <stdio.h>
fun(s,   n1,   n2)
int   *s,   n1,   n2;
{   int   i,   j,   t;
i=n1;   j=n2;
while(i <j)
{   t=   *(s+i);   *(s+i)=   *(s+j);   *(s+j)=t;
i++;   j--;
}
}
main()
{   int   a[10]={1,2,3,4,5,6,7,8,9,0},i,   *p=a;//这里a是多少呢?
fun(p,0,3);   fun(p,4,9);   fun(p,0,9);//这里的fun(p,0,3)是多少?
for(i=0;   i <10;   i++)   printf(“%d”,   *(a+i));
printf(“\n”);
}
主要是fun没搞清楚


[解决办法]
对数组s[]的n1到n2之间的数进行排序
[解决办法]
int *p=a;//这里a是多少呢? 代表指针p指向数组a的首地址
fun (int *s,int n1,int n2;) 作用是对于传进来的数组,将数组n1位与n2位之间的值配对互换。
[解决办法]
#include <stdio.h>
void fun(int *s,int n1,int n2)
{
int i, j, t;
i=n1; j=n2;
while(i <j)
{
t= *(s+i); *(s+i)= *(s+j); *(s+j)=t;
i++; j--;
}
}
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0},i, *p=a;//这里a是多少呢?
fun(p,0,3);
for(i=0; i <10; i++)
printf( "%d ", *(a+i));
printf( "\n ");
fun(p,4,9);
for(i=0; i <10; i++)
printf( "%d ", *(a+i));
printf( "\n ");
fun(p,0,9);//这里的fun(p,0,3)是多少?
for(i=0; i <10; i++)
printf( "%d ", *(a+i));
printf( "\n ");
}

这样应该看到fun函数的功能了把!!
[解决办法]
将数组n1位与n2位之间的值配对互换,不是进行排序!

热点排行