簡體   English   中英

在數組C中使用for循環的正確方法

[英]The correct way to use a for loop in an array C

我在處理數組的作業上遇到了麻煩。 我已經閱讀了課堂上的所有課文(這對我完全沒有幫助),查找了一些有關數組的教程,並在各個站點上搜索了類似的問題。 這是一項簡單的練習,可以使我們輕松進入主題,但我聽不懂。 我什至無法讓教師代碼在Ideone上工作。 它提出了運行時錯誤。

分配是創建一個名為InternetHits的一維數組,該數組包含10個整數值。 這些值是網站每天收到的點擊次數。 用戶應該能夠輸入點擊數。

這是我到目前為止的內容:它將在輸入的第一天打印出來,但是此后的每一天都是隨機數!

#include <stdio.h>

int main() {

    int InternetHits[10];
    int i;

    for(int i = 0; i < 10; i++){
        InternetHits[i];
        printf ("Enter number of hits for day %i\n", i+1);
        scanf ("%i", InternetHits);
    }

    for(int i = 0; i < 10; i++){
        printf ("Number of hits was %d\n", InternetHits[i-1]);
    }
}

任何幫助表示贊賞,謝謝

如果這確實是C ++分配,則將要使用#include <iostream>而不是#include <stdio.h>

我注意到您正在重新聲明int i ,因此只能執行一次(例如,刪除第一個聲明)。

您不再需要使用printf ,而是使用cout的背景下, cout << "Enter number of hits for day " << i + 1

for循環很好,但是不用scanf ,只需執行cin >> InternetHits[i]

同樣,為了顯示輸出,您將需要使用coutInternetHits[i]

更改為: scanf ("%i", InternetHits); 為此: scanf ("%i",&InternetHits[i]);

另外,刪除此語句InternetHits[i]; 因為它沒有效果。

此外,更改此行

  printf ("Number of hits was %d\n", InternetHits[i-1]);

對此:

  printf ("Number of hits was %d\n", InternetHits[i]);

修改后的代碼:

#include <stdio.h>

int main() {

int InternetHits[10];
int i;

for(int i = 0; i < 10; i++){

    printf ("Enter number of hits for day %i\n", i+1);
    scanf ("%i", &InternetHits[i]);
}

for(int i = 0; i < 10; i++){
    printf ("Number of hits was %d\n", InternetHits[i]);
}
}
scanf ("%i", InternetHits);

應該

scanf ("%i", &InternetHits[i]);

否則,只有第一個位置將被scanf()一次又一次地覆蓋。

更改此行

scanf ("%i", InternetHits);

scanf ("%d", &InternetHits[i]);   

使用scanf函數時,需要使用&

%d將整數掃描為帶符號的十進制數,
但是%i允許默認為十進制,但也允許十六進制(如果以“ 0x”開頭)和八進制(如果以“ 0”開頭)。 您可以根據需要使用它。

在第二次for循環

for(int i = 0; i < 10; i++){
    printf ("Number of hits was %d\n", InternetHits[i-1]);
}

i=0 ,您打印InternetHits[i-1] ,這意味着InternetHits[-1]可能會導致問題。

該程序看起來像C程序而不是C ++程序

程序(假設它是C程序)的外觀如下

#include <stdio.h>

#define N 10

int main( void ) 
{
    int InternetHits[N];

    for ( int i = 0; i < N; i++ )
    {
        printf ( "Enter number of hits for day %i: ", i + 1 );
        scanf ( "%i", &InternetHits[i] );
    }

    for ( int i = 0; i < N; i++ )
    {
        printf ( "Number of hits in day %i was %d\n", i + 1, InternetHits[i] );
    }
}

如果確實是C ++程序,那么它看起來可能像

#include <cstdio>

using namespace std;

int main() 
{
    const int N = 10;
    int InternetHits[N];

    for ( int i = 0; i < N; i++ )
    {
        printf ( "Enter number of hits for day %i: ", i + 1 );
        scanf ( "%i", &InternetHits[i] );
    }

    for ( int i = 0; i < N; i++ )
    {
        printf ( "Number of hits in day %i was %d\n", i + 1, InternetHits[i] );
    }
}

暫無
暫無

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

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