【发布时间】:2018-05-08 23:47:15
【问题描述】:
第一次使用这个网站。有人推荐我来这里。所以,我有一个任务很快就要到期了,我正在努力编写代码。我尽我所能完成了它,一切似乎都是为了我,但是当我运行程序时,无论我输入什么结果都不会改变。作业是:
编写一个 C 程序,从名为“input.txt”的文件中读取有关 5 个工人的信息。每行输入将 分别包含两个值,员工 ID 和员工的月薪。
假设输入文件中的数据以本例所示的格式存储。注意:出于测试目的,可能不一定使用以下数据。这只是为了让您了解数据的格式:
input.txt 的示例内容: 10 2000 20 6800 30 9700 40 1500 50 8000
将员工信息存储到二维数组中。假设数据类型如下:id(整数数据类型)和income(整数数据类型)。
读取信息,将5条员工记录存入二维数组。
使用打印工人所有收入总和的函数。
创建另一个函数,打印收入超过 5000 美元的工人数量,同时 每个收入超过 5000 美元的工人的身份证和收入。
而我的代码如下:
#include <stdio.h>
#include <stdlib.h>
int employeeID, salary;
int id[5][2], income[5][2];
int sum();
int greater();
FILE *worker;
int main()
{
worker=fopen("input.txt", "w");
printf("Enter Employee ID and Salary:\n");
for(employeeID=0;employeeID<5;employeeID++){
for(salary=0;salary<2;salary++){
scanf("%d", &id[employeeID][salary]);
}
}
for(employeeID=0;employeeID<5;employeeID++){
for(salary=0;salary<2;salary++){
fprintf(worker,"%d", &id[employeeID][salary]);
}
}
fclose(worker);
worker=fopen("input.txt", "r");
while(!feof(worker)){
for(employeeID=0;employeeID<5;employeeID++){
for(salary=0;salary<2;salary++){
fscanf(worker,"%d", &income[employeeID][salary]);
}
}
}
sum();
greater();
}
int sum()
{
int totalincome, totalsum;
int income[5][2];
totalsum=income[0][1]+income[1][1]+income[2][1]+income[3][1]+income[4][1];
totalincome=printf("\nSum of all workers incomes:$%d\n");
return totalincome;
}
int greater()
{
int employeeID, salary;
int income[5][2];
int num=0;
for(employeeID=0;employeeID<5;employeeID++){
for(salary=0;salary<2;salary++){
if(income[employeeID][salary+1]>5000){
num++;
}
}
}
printf("\nWorkers that have income greater than $5000:\t");
if(income[0][1]>5000)
{
printf("\nEmployee ID:%d Salary: $%d", income[0][0], income[0][1]);
}
if(income[1][1]>5000)
{
printf("\nEmployee ID:%d Salary: $%d", income[1][0], income[1][1]);
}
if(income[2][1]>5000)
{
printf("\nEmployee ID:%d Salary: $%d", income[2][0], income[2][1]);
}
if(income[3][1]>5000)
{
printf("\nEmployee ID:%d Salary: $%d", income[3][0], income[3][1]);
}
if(income[4][1]>5000)
{
printf("\nEmployee ID:%d Salary: $%d", income[4][0], income[4][1]);
}
return 0; //End of Program
}
我知道要阅读的内容很多,但我真的很感谢任何人的帮助。我真的很挣扎。谢谢。
【问题讨论】:
-
看来是时候给你learn how to debug your programs了。
-
你为什么
fprintf(worker,"%d", &id[employeeID][salary]);?? (更重要的是——你实际上想打印什么?)你会想看看Why is while ( !feof (file) ) always wrong?。 -
请说明您遇到了什么问题/错误?
标签: c arrays file multidimensional-array