这是我的代码:
#include <stdio.h>
void main()
{
int indeks, a[11], j, rezultat[50];
int n = 0;
printf("Unesite elemenate niza\n");
while (n < 10)
{
for(indeks = 0; indeks < 10; indeks++);
scanf("%d", &a[indeks]);
n++;
}
for (n = 0; n < 10; n++) {
printf("%d\n", a[n]);
}
}
您好,我有问题,这不会将数组打印为我输入的整数。
总是打印出-858993460十次。
这是它在cmd中的样子。 (抱歉英语不好)
Unesite elemenate niza:
1 /input starts here
3
5
1
0
2
3
5
7
4 /ends here
-858993460
-858993460
-858993460
-858993460
-858993460
-858993460
-858993460
-858993460
-858993460
-858993460 /output result
Press any key to continue . . .
答案 0 :(得分:4)
for
循环不执行任何操作,因为它以;
结尾,并且while
循环迭代,indeks
将始终为10
。我建议如下
#include <stdio.h>
int main() // correct function type
{
int indeks, a[11], j, rezultat[50];
int n = 0;
printf("Unesite elemenate niza\n");
//while (n < 10) // delete while loop
//{
for(indeks = 0; indeks < 10; indeks++) // remove trailing ;
scanf("%d", &a[indeks]);
//n++; // delete unnecessary line
//}
for (n = 0; n < 10; n++) {
printf("%d\n", a[n]);
}
return 0; // add return value
}
答案 1 :(得分:1)
此
for(indeks = 0; indeks < 10; indeks++);
除了递增indeks
10次之外什么都不做。
我可以写出为你更正的整个代码,但你将如何学习呢?
答案 2 :(得分:0)
您的代码似乎有一些语法错误。 Weather Vane 发布了正确的版本,请查看他的答案。
#include <iostream>
#include <stdio.h>
void main()
{
const unsigned int A_SIZE( 10 );
int a[ A_SIZE ];
printf( "Unesite elemenate niza\n" );
for ( unsigned int indeks( 0 ); indeks < A_SIZE; ++indeks )
scanf( "%d", &a[ indeks ] );
for ( unsigned int indeks( 0 ); indeks < A_SIZE; ++indeks )
printf( "%d\n", a[ indeks ] );
std::cout << "Enter a character to exit: "; char c; std::cin >> c;
}