[英]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]
。
同樣,為了顯示輸出,您將需要使用cout
和InternetHits[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.