读书人

求 一道c语言题目

发布时间: 2012-03-19 22:03:05 作者: rapoo

求高手指点 一道c语言题目
#include <stdio.h>
void fun(int a, int b)
{ int t;
t=a; a=b; b=t;
}
main()
{ int c[10]={1,2,3,4,5,6,7,8,9,0},i;
for(i=0;i<10;i+=2) fun(c[i],c[i+1]);
for(i=0;i<10;i++) printf("%d,",c[i]);
printf("\n");
}
答案是:1,2,3,4,5,6,7,8,9,0, 为什么不是2,1,4,3,6,5,8,7,0,9 求解惑?

[解决办法]

C/C++ code
#include <stdio.h>void fun(int a, int b)//副本传值{    int t;    t=a;     a=b;     b=t;}void fun1( int *a, int *b )//指针传值{    int t;    t = *a;    *a = *b;    *b = t;}void fun2( int &a, int &b )//引用传值{    int t;    t = a;    a = b;    b = t;}int main(){     int c[10]={1,2,3,4,5,6,7,8,9,0},i;    for(i=0;i<10;i+=2)         fun(c[i],c[i+1]);    for(i=0;i<10;i++)         printf("%d,",c[i]);    printf("\n");    int c1[10]={1,2,3,4,5,6,7,8,9,0};    for(i=0;i<10;i+=2)         fun1(&c1[i],&c1[i+1]);    for(i=0;i<10;i++)         printf("%d,",c1[i]);    printf("\n");    int c2[10]={1,2,3,4,5,6,7,8,9,0};    for(i=0;i<10;i+=2)         fun2(c2[i],c2[i+1]);    for(i=0;i<10;i++)         printf("%d,",c2[i]);    printf("\n");    return 0;} 

读书人网 >C语言

热点推荐