Hiển thị phần tử thứ i của mảng

Mấy Pro ơi, có ai rảnh thì giải thích giùm đệ với.
Đệ hiển thị phần tử thứ i của Mảng bằng 2 dòng Lệnh 11 và 13.
Về bản chất, đệ thấy chúng y hệt nhau, nhưng tại sao Kết quả xuất ra màn hình Lại khác nhau??

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

int main()
{
    float SoFloat[5]={1.2,0.3,4.4,5.7,8.8};

    int i=6;

        printf("\nPhan tu cua Mang: SoFloat thu %d La: %.3f\n",i-2,SoFloat[i-2]);

        printf("\nPhan tu cua Mang: SoFloat thu %d La: %.3f\n",--i,SoFloat[--i]);
}

Cảm ơn mấy Pro nhiều nhiều!!

Chắng hiểu sao bạn lại thấy nó y hệt, rõ là khác rành rành mà. :kissing:


Cái trên là chỉ thẳng a[4]

Cái dưới giảm i in ra vị trí, rồi làm giảm i lần nữa in ra a[i]. Thấy khác nhau chưa. :smiley:

1 Like

đệ không hiểu tại sao Kết quả xuất ra màn hình Lại khác nhau??
Dù cho thế nào thì kết quả vẫn Là 1 trong 5 số trong Mảng.
Tại sao, Kết quả Lại = 0.000

Đệ chẳng hiểu cái quái gì hết.

À…

Nó là UB. :kissing:

prog.c: In function 'main':
prog.c:12:31: warning: operation on 'i' may be undefined [-Wsequence-point]
   12 |     printf("%d: %f\n", --i, a[--i]);
      |                               ^~~

Bonus:

4 Likes

cảm ơn Pro ’ Sherly1001’ nhiều nhiều.

1 Like

Câu sau bị undefined rồi đấy. Đã có --i mà còn có i nào nữa là ko đc.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?