在数组C

时间:2015-05-02 01:30:29

标签: c arrays loops

我在处理数组的家庭作业时遇到了一些麻烦。我已经阅读了课上的所有文本(根本没有帮助我),在数组上查找了几个教程,并在各个站点上搜索了类似的问题。它是一个简单的练习任务,以方便我们进入主题但我无法理解它。我甚至无法让教师代码在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]);
    }
}

感谢任何帮助,谢谢

5 个答案:

答案 0 :(得分:0)

如果这确实是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]

答案 1 :(得分:0)

将此更改为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]);
}
}

答案 2 :(得分:0)

scanf ("%i", InternetHits);

应该是

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

否则只有第一个位置会被scanf()一次又一次覆盖。

答案 3 :(得分:0)

更改此行

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],这可能会导致问题。

答案 4 :(得分:0)

程序看起来像C程序而不是C ++程序

以下是该程序(假设它是一个C程序)应该如何看待

favourites

如果它确实是一个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] );
    }
}