分类：电脑/网络-程序设计-C/C++
问题：C语言的一个问题main(){intx,max,i;printf 
main(){    int x,max,i;    printf("Enter x(-1 to end):");    do     scanf("%d",&x);    while (x<0&&x!=-1);    max=x;    while(x!=-1)    {      scanf("%d",&x);      if(x>0&&x>max)      max=x;    }    if(max!=-1)printf("max=%d\n",max);}输入若干main(){    int x,max,i;    printf("Enter x(-1 to end):");    do     scanf("%d",&x);    while (x<0&&x!=-1);    max=x;    while(x!=-1)    {      scanf("%d",&x);      if(x>0&&x>max)      max=x;    }    if(max!=-1)printf("max=%d\n",max);}输入若干个大于零的正整数中选出最大值，用-1结束输入。问题是：既然要求输入的是正整数，为什么中出现“while (x<0&&x!=-1);”？即使用户输入的是负数，那么x<0怎么会max=x?如果输入的x小于-1呢？
回答：while (x<0&&x!=-1);是和上面的do组成的循环体，循环执行scanf("%d",&x); 操作，只有当x=-1时，才跳出循环，继续下面的max=x。