quark 发表于 2022-11-14 21:15:31

新手求助,急,谢谢!

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int z = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0};

int main(void)
{
        int j, n = 0;
        for (j = 0; j < 11; j++)
        {
                printf("z[%d] = %d ", n++, z);   
                if (10 == z)
                {
                        j++;
                        printf("z[%d] = %d, j = %d\n", n, z, j);
                        break;
                }
        }
        printf("z[%d] = %d, z[%d] = %d, z[%d] = %d, %d", n, z, n - 1, z[--n], n, z, n);
        _getch();
        return 0;
}

/*VC6下运行结果
z = 1 z = 2 z = 3 z = 4 z = 5 z = 6 z = 7 z = 8 z = 9
z = 10, j = 9
z = 9, z = 9, z = 10, 9
*/

/*期待结果
z = 1 z = 2 z = 3 z = 4 z = 5 z = 6 z = 7 z = 8 z = 9
z = 10, j = 9
z = 10, z = 9, z = 9, 10
*/

//求解答,谢谢。

jackz007 发表于 2022-11-14 21:58:50

本帖最后由 jackz007 于 2022-11-14 22:03 编辑

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int z = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0};

int main(void)
{
      int j, n = 0;
      for (j = 0; j < 11; j++)
      {
                printf("z[%d] = %d ", n ++ , z)                ;   
                if (10 == z)
                {
                        j++;
                        printf("z[%d] = %d, j = %d\n", n, z, j);
                        break;
                }
      }
      printf("z[%d] = %d, z[%d] = %d, z[%d] = %d, %d" , n , z , n - 1 , z , n - 1 , z , n + 1) ;
      getch()   ;
      return 0    ;
}
      同一个函数里同一个变量作为多个参数多次进行自加、自减操作,属于非确定性运算(第20行),其结果会因编译器的不同而有所不同,所以,必须极力避免这样使用。

quark 发表于 2022-11-14 22:33:05

@jackz007,谢谢老大,涨知识啦。
页: [1]
查看完整版本: 新手求助,急,谢谢!