请问下列代码哪里错了?

#include<stdio.h>
int main()
{
int n,i;
int num[8];
for(i=0,n=2;i<8;i++,n=n*2)
num[i]=n;

do
{
    i=0;
    i++;
    printf("%d  ",num[i]);
}while(i<8);

return 0;

}

大哥你在do 里面才给i=0,你每次进入do循环都会让i=0,你这死循环了吧?
把i=0 放到do 前面

i错了,do while 循环里应该重新定义一个变量i