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