【问题标题】:array doesn't show correct values [closed]数组不显示正确的值[关闭]
【发布时间】:2021-11-13 12:40:37
【问题描述】:

我试图在从用户那里获取数组后显示它的值

#include <stdio.h>
#define MAXSIZE  3
void main (void)
{
    int data[MAXSIZE];
    int n ,i ;

    for (i = 0;i < MAXSIZE ;i++ )
    {
        printf("Enter array [%d]: ",i+1);
        scanf("%d",&data[n]);

    }

    printf("data before sort\n");
    printf("===================\n");
    for (i = 0; i < MAXSIZE ;i++ )
        printf("Value[%d]:%d\n",i+1,data[n]);





}

输入:

输入数组[1]:3

输入数组[2]:2

输入数组[3]:1

输出:

排序前的数据

====================

值[1]:1

值[2]:1

值[3]:1

我想显示数据输入的数据,但它显示了最后输入的值

在这种情况下是 1

【问题讨论】:

  • data[n] -> data[i]
  • n 到底应该用来做什么?只需将其删除。
  • 如果启用编译器警告,另一个新手错误很容易避免:error: variable 'n' is uninitialized when used here [-Werror,-Wuninitialized]

标签: arrays c sorting data-structures


【解决方案1】:

n 的实例替换为i。变量i 用于跟踪每个for 循环中的计数,而n 从未设置或初始化。

【讨论】:

    猜你喜欢
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2011-12-11
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多