C语言 为什么我得到数组的第一个元素的输出?

u0njafvf  于 2023-08-03  发布在  其他
关注(0)|答案(2)|浏览(189)
#include <stdio.h>

void main(){
    int arr[] = {},n;

    printf("Enter the number of elements you want to store in an array: ");
    scanf("%d",&n);

    for(int i=1; i<=n;){
        printf("Enter the %dst element: ",i);
        scanf("%d",&arr[i]);
        i++;
    }

    for (int i=1; i<=n;)
    {
        printf("%d",arr[i]);
        i++;
    }
    
}

字符串

我要输出

输入要存储在数组中的元素数:5
输入第一个元素:1
输入第二个元素:2
输入第三个元素:3
输入第四个元素:4
输入第五个元素:5
输出量:
12345

我得到的输出

输入要存储在数组中的元素数:5
输入第一个元素:1
输入第二个元素:2
输入第三个元素:3
输入第四个元素:4
输入第五个元素:5
输出量:

62345

我不知道为什么数组的第一个元素被添加到元素的数量“n”。

bfhwhh0e

bfhwhh0e1#

问题是你没有在任何for循环中递增i,你只是声明i,然后提供要满足的条件,这导致只有第一个元素被输出。将for(int i=1; i<=n;)更改为for (int i = 1; i <= n; i++),这是正确的语法,因为i变量正在递增。

nue99wik

nue99wik2#

#include <stdio.h>
#define MAX 100
int main()
{
    int arr[MAX], n;
    printf("Enter no of elements:- ");
    scanf("%d", &n);
    printf("Enter elements:- \n");
    for (int i=0; i<n; i++)
   {
         printf("Element no %d):- ", i+1);
         scanf("%d", &arr[i]);
   }
    printf("Elements:- \n");
   for (int j=0; j<n; j++)
  {
         printf("%d ", arr[j]);     //Here space is needed after %d
  }
}

字符串

相关问题