請問程式執行傳指呼叫後X Y 值為何
主程式
STAR
X=1,Y=2
F(X,Y,X Y,Y)
X,Y
STOP
副程式
F(A,B,C,D)
B=A D A=C D=D 1
RETURN
2007-02-15 06:12:05 · 3 個解答 · 發問者 寒宇策 1 in 電腦與網際網路 ➔ 程式設計
請問程式執行傳指呼叫後X Y 值為何
主程式
STAR
X=1,Y=2
F(X,Y,X Y,Y)
-->請問這裡的X,Y,X 與Y,Y之間是否有,呢?
X,Y
STOP
副程式
F(A,B,C,D)
B=A D A=C D=D 1
-->請問這裡的B=A D A=C 中間的D是?
RETURN
再請問這是哪一個程式語言?或是教科書是使用哪一本呢?
我可依巨匠電腦的電腦課程用書或巨匠電腦的程式語言課程幫你
解答
2007-02-15 17:41:01 補充:
後來我想了想,不知以下的程式是否合乎你的需求?
細節部分,請參考巨匠電腦以下兩門課程:
LC1 C語言程式設計 C語言(入門指引)
LC2 C語言實務應用 C語言(實務應用)
2007-02-15 17:41:08 補充:
#include
void pcschool(a,b,c,d)
int *a,*b,c,*d;
{
*b=*a;
*a=c;
*d=*d * 1;
}
void main(void)
{
int x,y;
x=1;
y=2;
pcschool(&x,&y,x*y,&y);
printf("x-->%d\n",x);
printf("y-->%d\n",y);
system("pause");
return 0;
}
2007-02-15 11:25:03 · answer #1 · answered by 阿福 3 · 0⤊ 0⤋
不知道你將要用那一種語言
但是在主程式中
X+Y 已經是數值的相加
不能用來傳趾
附上 Borland C 的程式 再說明
主程式
STAR
X=1,Y=2
F(X,Y,X+Y,Y)
X,Y
STOP
副程式
F(A,B,C,D)
B=A+D
A=C
D=D+1
RETURN
==================================================
#include
void foo(int*, int*, int, int*);
/* c 是傳值 所以有它自己的位趾 */
void foo(a, b, c, d) /* a(X) = 1, b(Y) = 2, c = 3, d(Y) = 2 */
int *a, *b, c, *d;
{
*b = *a *d; /* b(Y) 先變成 3, 所以 d(Y) 也變成 3 */
*a = c; /* a(X) 變成 3 */
*d = *d 1; /* d(Y) 先變成 4, 所以 b(Y) 也變成4 */
}
void main(void)
{
int x, y;
x = 1;
y = 2;
foo(&x, &y, x y, &y); /* 傳入 1, 2, 3, 2 */
printf("x = [%d]\n",x);
printf("y = [%d]\n",y);
}
最後 印出
x = [3]
y = [4]
如果有問題, 請來函討論. 不然, 我可能會錯失你再補充的疑點.
2007-02-18 23:39:44 · answer #2 · answered by JJ 7 · 0⤊ 0⤋
http://sunneo.myweb.hinet.net/files/CppCode/help.txt
這是我的回答
X=2,Y=2
2007-02-15 10:26:07 · answer #3 · answered by 艾斯寇德 2 · 0⤊ 0⤋