2017-08-31 19 views
-5

編寫一個讀取10個整數的程序並打印第一個和最後一個在第一行,第二個和第九個在下一行上的第一個和最後一個,下一行的第三個和第七個 ,等等。C代碼,用戶輸入10個數字並按照一定的順序輸出它們

Please enter 10 numbers: 
10 31 2 73 24 65 6 87 18 9 

Your numbers are: 
10 9 
31 18 
2 87 
73 6 
24 65 

到目前爲止,我已經編寫了要求輸入的代碼。我不知道如何獲得輸出,並且目前無法找到答案。

#include <stdio.h> 
int main (void) 
{ 
    int numbers; 

    printf("Please enter Ten numbers:"); 
    scanf("%d", & numbers); 

    printf("your numbers are: %d", numbers); 
    return 0; 
} 
+4

因此,您可以讀取並打印1個數字。你能改進你的代碼來閱讀和打印2個數字嗎? – mch

+0

因此,爲了讓我的代碼打印兩個數字,是否必須輸入%2d?在我的scanf?我對編程非常陌生,但我仍然不知道如何與我的系統交談。 – Don

+0

代碼可以改進以讀取兩個數字。 – Don

回答

0

歡迎C,唐!有很多方法可以解決這個,但我們堅持自己的陣列利用....

1)設定輸入到一個數組

2)如果你能確保你的投入將是10個值。

for (i=0; i < 5; i++) 
{ 
    for j=9; j > 4; j--) 
    { 
     printf("%d %d\n", array[i], array[j]); 
    } 
} 
  • 「i」 被設定爲零,因爲在陣列中的第一個索引位置實際上是陣列[0](未陣列[1])

您可以增量 「i」的值,而遞減「j」的值,所以正朝着中心努力。說得通?

+0

我對你在說什麼做了一些研究,這很有道理。只是最後一個問題。爲什麼J = 9?我可以看到你正在減少1的增量。這樣做是否允許系統映射到中心正確? – Don

+0

如果你設置j = 9,然後說數組[j],你說「嗨計算機,去我的數組索引9(因爲電腦開始索引在0,這是第10項)。它出來了;你明確地告訴它在什麼地方/如何通過說j來減少(這意味着每個循環,將j的值減1),所以下一個循環,你會說:「嘿計算機,打印我的數組索引8「等等,等等;)有道理? – NamoDawn

+0

是啊!我現在明白了大聲笑對不起,我幾乎是一個虛擬的,當談到這一點,我從基礎知識開始。真的很感謝! – Don

-1
int a[10], i; 
// To read 
for (i=0; i<10; i++) 
    scanf("%d", a+i); 
// To print 
for (i=0; i<5; i++) 
    printf("%d %d\n", a[i], a[(10-1)-i]); 
+0

這工作,你到底怎麼來這個劇本?有什麼方法可以告訴我你的步驟獲得這個答案?我正在盡力學習編碼。 – Don

相關問題