c - 为什么我的整数数组显示随机值?

标签 c arrays pointers

<分区>

我正在尝试制作一个程序来存储有关员工的信息,但是当我尝试将薪水存储在那里时,输出是一个随机整数。

在我将原始的 Salary(不是数组)转换为 Salary[i] 之前,代码运行良好,我这样做了能够计算总薪水 (totSlry)

int NumofEmpo;
printf("How much Employees do you want to add?\n");
scanf(" %d", &NumofEmpo); 

char Name[25], Service[20];                //All the variables that the user
int DOB, Salary[NumofEmpo], totSlry = 0;   //info will get stored in

    for(int i = 0; i != NumofEmpo; i++)
    {
        fgetc(stdin);

        printf("Name: ");
        fgets(Name, 25, stdin);
        printf("Service: ");
        fgets(Service, 20, stdin);
        printf("Date of Birth: ");
        scanf("%d", &DOB);
        printf("Salary: ");
        scanf("%d", &Salary[i]);
        printf("\n");
        totSlry = totSlry + Salary[i];

        FILE * fpointer = fopen("Employees.txt", "a");

        fprintf(fpointer, "Name: %s", Name);
        fprintf(fpointer, "Service: %s", Service);
        fprintf(fpointer, "Date of Birth: %d\n", DOB);
        fprintf(fpointer, "Salary: %d\n\n", Salary);

        fclose(fpointer);
    }
    FILE * fpointer0 = fopen("Employees.txt", "a");
    fprintf(fpointer0, "Total Salary: %d", totSlry);
    fclose(fpointer0);

我希望输出显示文件中所有员工的薪水,如下所示:

Name: Ahmed
Service: Security
Date of Birth: 1995
Salary: 100

Name: John
Service: Accountant
Date of Birth: 2000
Salary: 200

Total Salary: 300

但实际输出结果是这样的:

Name: Ahmed
Service: Security
Date of Birth: 1995
Salary: -24087712

Name: John
Service: Accountant
Date of Birth: 2000
Salary: -24087712

Total Salary: 300

最佳答案

你的代码有

fprintf(fpointer, "Salary: %d\n\n", Salary);

按照你的程序逻辑,应该是

fprintf(fpointer, "Salary: %d\n\n", Salary[i]);

您试图将 Salary int 数组的基址打印为实际整数,因此是随机数。

关于c - 为什么我的整数数组显示随机值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57452954/

相关文章:

c - 将数据读入 C 中的 float 组

可以映射零页或写入地址零吗?

c - Qt多线程应用程序卡住并且多个线程等待相同的互斥体

c - 如何将自定义 Linux 信号从内核模块广播到所有正在运行的进程

c - C中realloc函数的时间复杂度是多少?

javascript - 通过两个嵌套值过滤对象

检查 C 中的单元测试 : Best way to test static methods

javascript - 通过javascript将数组转换为json对象

javascript - 当数组的大多数值相同时如何避免访问相同的索引?看一看

c - 如何正确地将指针传递给指针数组?