int main()
{
int abc[2][2];
int i,j,q,r,u,k;
char *A = malloc(sizeof(*A));
abc[0][0] = 1;
abc[1][0] = 0;
abc[0][1] = 7;
abc[1][1] = 480;
do
{
if( abc[1][1]>abc[0][1])
{
q = floor((abc[1][1] - 1)/abc[0][1]);
r = abc[1][1] - q*abc[0][1];
abc[1][0] = q*abc[0][0] + abc[1][0];
abc[1][1] = r;
}
if( abc[0][1]>abc[1][1])
{
q = floor((abc[0][1] - 1)/abc[1][1]);
r = abc[0][1] - q*abc[1][1];
abc[0][0] = q*abc[1][0] + abc[0][0];
abc[0][1] = r;
}
u = abc[0][0];
A[k] = abc[1][0];
} while (abc[0][1]>1);
return 0;
}
我想将索引的每个值 - abc[1][0]
存储在数组A[]
中,这样我就无法进一步使用该数组,但我仍然坚持存储所有值
答案 0 :(得分:1)
如果你想在每个循环结束时记录abc[1][0]
的值,你可以这样做:
int* A = malloc(1000 * sizeof(*A)); // Note: Room for 1000 values
k = 0;
....
....
do
{
....
....
if (k < 1000)
{
A[k] = abc[1][0];
++k;
}
} while (abc[0][1]>1);
// Print the recorded values
printf("Recorded %d values\n", k);
int t;
for (t = 0; t < k; ++t) printf("Value[%d]=%d\n", t, A[t]);
这将记录前1000个值。
如果您希望能够录制&#34;任何&#34;值的数量,您应该查看realloc
,以便在达到1000时分配更多内存