如何在for循环中使用scanf将值分配给数组?

问题描述 投票:0回答:3
int main (void)
{
   int i = 1; 
   int arrayOfNumbers[4];

   for(i = 1; i >= 4; i++)
   {
      printf("Enter a Number");
      scanf("%d", &arrayOfNumbers[i]);
   }
    return 0;
}

我的编译器编译程序,但是for循环不会发生。这个程序简直是愚蠢的。如何创建一个旨在分配数组所有值的循环?

arrays loops for-loop scanf assign
3个回答
1
投票

更改:

for(i = 1; i >= 4; i++)
   {
      printf("Enter a Number");
      scanf("%d", &arrayOfNumbers[i]);
   }
    return 0;

至:

for(i = 1; i <= 4; i++)
   {
      printf("Enter a Number");
      scanf("%d", &arrayOfNumbers[i]);
   }
    return 0;

由于1不大于4,因此不会通过for循环。


0
投票

这是for循环的正确声明:

for ( init-expression ; cond-expression ; loop-expression ) 

在您的代码中,将i的初始值设置为1,在condition-expression中,您的代码在1不大于4的第一条件本身中失败。

您的for循环声明应为

for(i = 1; i <= 4; i++)
{
//code to be executed
}

您的程序的完整代码:

#include<stdio.h>
int main (void)
{
   int i = 1; 
   int arrayOfNumbers[4];

   for(i = 1; i <= 4; i++)
   {
      printf("Enter a Number \n");
      scanf("%d", &arrayOfNumbers[i]);
   }
  printf("Your Entered number is.. \n");
  for(i = 1; i <= 4; i++)
   {
     printf(" %d",arrayOfNumbers[i]);
     printf("\t");
   }
return 0;
}

下面的代码给我们输出为,

Enter a Number 
1   
Enter a Number 
2
Enter a Number 
3
Enter a Number 
4
Your Entered number is.. 
 1   2   3   4

0
投票

您必须将连续性的条件更改为i <= 4而不是我> = 4

© www.soinside.com 2019 - 2024. All rights reserved.