Int Array []打印不好。

时间:2015-04-01 16:22:44

标签: c++ c arrays printf

这是我的代码:

#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 . . .

3 个答案:

答案 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;
}