下面程序运行后的输出结果是_ #include <stdio.h> main() {int a[]={2,4,6,8,10,12},*p=&a[5],*q=a; int t; while(q<p) t=*p; *q=t; *p=*q; t=*p; p--;q++; printf("%d,%d\n",*p,*q);
时间: 2024-02-09 10:11:20 浏览: 77
程序中存在一个问题,即 while 循环体内缺少一对大括号,导致循环体内只有一行语句 t=*p; *q=t; 执行,而 *p=*q; 和 t=*p; 都不在循环体内,因此只会执行一次循环体内的语句,最终输出结果为 12,2。
正确的程序应该为:
```c
#include <stdio.h>
int main() {
int a[] = {2, 4, 6, 8, 10, 12}, *p = &a[5], *q = a;
int t;
while (q < p) {
t = *p;
*p = *q;
*q = t;
p--;
q++;
}
printf("%d,%d\n", *p, *q);
return 0;
}
```
程序的输出结果为 4,10。
阅读全文