请问怎么改动该代码才能使其正常运行?

#include<stdio.h>
#include <string.h>
typedef struct worker{
    char name[100];
    char sex[100];
    int date;
    char type[100];
}worker;
const int n=5;
int main(){
    void input(worker *st,int a);
    void judge(worker *st,int a);
    void output(worker *st,int a);
    worker st[n];
    worker *wk=st;
    input(wk,n);
    judge(wk,n);
    output(wk,n);
    return 0;
}
void input(worker *st,int a){
    int j;
    for(j=0;j++;j<=a){
        scanf("%s %s %d",st[j].name,st[j].sex,&st[j].date);
    }
}
void judge(worker *st,int a){
    int j;
    for(j=0;j++;j<=a){
        if(st[j].date<5){
            strcpy(st[j].type,"正常");
        }
        else{
            strcpy(st[j].type,"不正常");
        }
    }
}
void output(worker *st,int a){
    int j;
    for(j=0;j++;j<=a){
        printf("%s,%s,%d,%s\n",st[j].name,st[j].sex,st[j].date,st[j].type);
    }
}

该程序的想法是输入一个数字,然后输入与数字相等的结构体数量。输入为名字,性别,角色所受的辐射量,然后判断是否正常,然后输出名字,性别,辐射量,正常或不正常。但程序根本无法使用,请问错误在哪?

 


    for(j=0;j++;j<=a){
        scanf("%s %s %d",st[j].name,st[j].sex,&st[j].date);

改成:


    for(j=0;j<a;j++){
        scanf("%s %s %d",st[j].name,st[j].sex,&st[j].date);

其它都要改

#include<stdio.h>
#include <string.h>
typedef struct worker{
	char name[100];
	char sex[100];
	int date;
	char type[100];
}worker;
const int n = 5;
int main(){
	void input(worker *st, int a);
	void judge(worker *st, int a);
	void output(worker *st, int a);
	worker st[n];
	worker *wk = st;
	input(wk, n);
	judge(wk, n);
	output(wk, n);
	return 0;
}
void input(worker *st, int a){
	int j;
	for (j = 0; j < a; j++){
		scanf("%s %s %d", st[j].name, st[j].sex, &st[j].date);
	}
}
void judge(worker *st, int a){
	int j;
	for (j = 0; j < a; j++){
		if (st[j].date<5){
			strcpy(st[j].type, "正常");
		}
		else{
			strcpy(st[j].type, "不正常");
		}
	}
}
void output(worker *st, int a){
	int j;
	for (j = 0; j < a; j++){
		printf("%s,%s,%d,%s\n", st[j].name, st[j].sex, st[j].date, st[j].type);
	}
}

 

void input(worker *st,int a){
    int j;
    for(j=0;j++;j<=a){
        scanf("%s %s %d",st[j].name,st[j].sex,&st[j].date);
    }
}


这个函数的for循环写错了,
改成
for(j=0;j<=a;j++){
        scanf("%s %s %d",st[j].name,st[j].sex,&st[j].date);
    }

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632