針對第二題,以下供您參考
#include
#include
int GCD(int a, int b){
int r;
if(a
2010-02-16 10:29:47 補充:
while(1){
printf("(輸入0代表離開程式)\\n");
printf("請輸入n質。\\n");
n=get_number();
printf("請輸入%d個自然數。\\n", n);
a=(int*)malloc(n*sizeof(int));
for(i=0; i
2010-02-16 10:30:41 補充:
for(i=0; i
這是我 在 2010年2月14日 12:17:40 已 post 上的答案
#include
#include
#include
int GCD(int a, int b)
{ while (b)
{ int c = a % b;
a = b;
b = c;
}
return a;
}
2010-02-15 07:23:31 補充:
int main(void)
{ int *a, G, i, n, *p;
srand((unsigned) time(NULL)); rand();
n = (rand() >> 6) + 3; // At least 3 elements
a = (int *) malloc(sizeof(*a) * n);
if (a == NULL)
exit(1);
for (i=n, p=a; --i >= 0; ++p)
(*p = rand()) ++ ; // ++: to prevent 0
2010-02-15 07:24:23 補充:
G = GCD(*a, a[1]); // Use a[0], a[1], and a[2] as i, j, k
G = GCD(G, a[2]);
printf("The GCD of %d, %d, and %d is %d.\\n", *a, a[1], a[2], G);
G = GCD(*a, a[1]);
for (i=n, (p=a) ++ ; --i && G!=1; ++ p)
G = GCD(G, *p);
printf("The GCD of the %d numbers is %d.\\n", n, G);
2010-02-15 07:26:54 補充:
system("pause");
free(a);
return 0;
}
其中除了加點空白以防被知識+ 吃字外,沒做任何修改。
當然,意見中的排版早已被知識+ 毀了!
回答時的排版較好。