簡體   English   中英

c-用for循環填充一維數組

[英]c-fill a one dimensional array with for loop

我可以理解第一個解決方案。但在第二個解決方案中,我對scanf的方式感到困惑,同時接受 4 個值並將它們應用於for循環。

//first solution
#include <stdio.h>

int main() {
    int pin[4],i;
    
    for(i=0; i<4; i++){
        printf("Give value: ");
        scanf("%d", &pin[i]);
    }
  
    return 0;
}
//second solution
#include <stdio.h>

int main() {
    int pin[4],i;
    
    printf("Give 4 values: ");
    
    for(i=0; i<4; i++){
        
        scanf("%d", &pin[i]);
    }
  
    return 0;
}

不同之處僅在於,在第一個示例中,有一個 printf 在循環的每次迭代中詢問您的輸入值,而在第一個示例中,在循環之前有一個 printf(只有一個)。

重要的操作(scanf)在兩個示例中完全相同。

scanf命令不會同時讀取四個值。

這是一個循環示例:一段代碼多次執行相同的操作。

for(i=0; i<4; i++){
    
    scanf("%d", &pin[i]);
}

for語句的作用是,首先將i初始化為零,然后檢查i是否小於 4,然后執行大括號內的代碼。 那是scanf語句,它嘗試讀取一個整數到&pin[i]指定的地址。 由於i為零,這意味着pin[0]的地址,它是數組pin的第一個元素。

scanf執行之后(以及它是否成功,這是您可能想要研究的) for語句增加i的值,檢查它是否仍然小於 4,並再次執行大括號之間的代碼塊. 這一次, scanf語句嘗試讀取pin[1]

循環再執行兩次,可能會在將i增加到 4 之后終止之前將整數存儲在pin[2]pin[3]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM