在c中使用struc显示输出的问题 [英] Problem on showing output by using struc in c
本文介绍了在c中使用struc显示输出的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
#include <stdio.h>
struct COURSE{
char code[100];
char name[100];
char lecturer[100];
int credit_hour;
};
struct STUDENT_REC{
char name[100];
int gpa;
int total_hours;
struct ch_cs1;
struct ch_cs2;
struct ch_cs3;
struct ch_cs4;
struct ch_cs5;
struct ch_cs6;
struct ch_cs7;
struct ch_cs8;
struct ch_cs9;
struct ch_cs10;
};
void input_student_data(struct student_struct *st_rec);
int computed_gpa(int average);
int main(void)
{
struct student_struct student_record;
{
input_student_data(&student_record);
printf("Student Name :%s\n",student_record.student_name);
printf("Subject Code :%s\n",student_record.subject_code);
printf("Subject Name :%s\n",student_record.subject_name);
printf("Lecturer Name :%s\n",student_record.lecturer_name);
printf("Credit Hour :%s\n",student_record.credit_hour);
printf("\nSubject Code :%s\n",student_record.subject_code);
printf("Subject Name :%s\n",student_record.subject_name);
printf("Lecturer Name :%s\n",student_record.lecturer_name);
printf("Credit Hour :%s\n",student_record.credit_hour);
printf("\nSubject Code :%s\n",student_record.subject_code);
printf("Subject Name :%s\n",student_record.subject_name);
printf("Lecturer Name :%s\n",student_record.lecturer_name);
printf("Credit Hour :%s\n",student_record.credit_hour);
printf("\nSubject Code :%s\n",student_record.subject_code);
printf("Subject Name :%s\n",student_record.subject_name);
printf("Lecturer Name :%s\n",student_record.lecturer_name);
printf("Credit Hour :%s\n",student_record.credit_hour);
printf("\nSubject Code :%s\n",student_record.subject_code);
printf("Subject Name :%s\n",student_record.subject_name);
printf("Lecturer Name :%s\n",student_record.lecturer_name);
printf("Credit Hour :%s\n",student_record.credit_hour);
printf("\nSubject Code :%s\n",student_record.subject_code);
printf("Subject Name :%s\n",student_record.subject_name);
printf("Lecturer Name :%s\n",student_record.lecturer_name);
printf("Credit Hour :%s\n",student_record.credit_hour);
printf("\nSubject Code :%s\n",student_record.subject_code);
printf("Subject Name :%s\n",student_record.subject_name);
printf("Lecturer Name :%s\n",student_record.lecturer_name);
printf("Credit Hour :%s\n",student_record.credit_hour);
printf("\nSubject Code :%s\n",student_record.subject_code);
printf("Subject Name :%s\n",student_record.subject_name);
printf("Lecturer Name :%s\n",student_record.lecturer_name);
printf("Credit Hour :%s\n",student_record.credit_hour);
printf("\nSubject Code :%s\n",student_record.subject_code);
printf("Subject Name :%s\n",student_record.subject_name);
printf("Lecturer Name :%s\n",student_record.lecturer_name);
printf("Credit Hour :%s\n",student_record.credit_hour);
printf("\nSubject Code :%s\n",student_record.subject_code);
printf("Subject Name :%s\n",student_record.subject_name);
printf("Lecturer Name :%s\n",student_record.lecturer_name);
printf("Credit Hour :%s\n",student_record.credit_hour);
printf("GPA :%c\n",(student_record.gpa));
}
return 0;
}
void input_student_data(struct student_struct *s)
{
printf("Enter Student Name :");
gets(s->student_name);
printf("Enter Subject Code :");
gets(s->subject_code);
printf("Enter Subject Name :");
gets(s->subject_name);
printf("Enter Lecturer Name :");
gets(s->lecturer_name);
printf("Enter credit hour for course 1 :");
scanf("%d", &s->ch_cs1);
printf("\n");
gets(s->student_name);
printf("Enter Subject Code :");
gets(s->subject_code);
printf("Enter Subject Name :");
gets(s->subject_name);
printf("Enter Lecturer Name :");
gets(s->lecturer_name);
printf("Enter credit hour for course 2 :");
scanf("%d", &s->ch_cs2);
printf("\n");
gets(s->student_name);
printf("Enter Subject Code :");
gets(s->subject_code);
printf("Enter Subject Name :");
gets(s->subject_name);
printf("Enter Lecturer Name :");
gets(s->lecturer_name);
printf("Enter credit hour for course 3 :");
scanf("%d", &s->ch_cs3);
printf("\n");
gets(s->student_name);
printf("Enter Subject Code :");
gets(s->subject_code);
printf("Enter Subject Name :");
gets(s->subject_name);
printf("Enter Lecturer Name :");
gets(s->lecturer_name);
printf("Enter credit hour for course 4 :");
scanf("%d", &s->ch_cs4);
printf("\n");
gets(s->student_name);
printf("Enter Subject Code :");
gets(s->subject_code);
printf("Enter Subject Name :");
gets(s->subject_name);
printf("Enter Lecturer Name :");
gets(s->lecturer_name);
printf("Enter credit hour for course 5 :");
scanf("%d", &s->ch_cs5);
printf("\n");
gets(s->student_name);
printf("Enter Subject Code :");
gets(s->subject_code);
printf("Enter Subject Name :");
gets(s->subject_name);
printf("Enter Lecturer Name :");
gets(s->lecturer_name);
printf("Enter credit hour for course 6 :");
scanf("%d", &s->ch_cs6);
printf("\n");
gets(s->student_name);
printf("Enter Subject Code :");
gets(s->subject_code);
printf("Enter Subject Name :");
gets(s->subject_name);
printf("Enter Lecturer Name :");
gets(s->lecturer_name);
printf("Enter credit hour for course 7 :");
scanf("%d", &s->ch_cs7);
printf("\n");
gets(s->student_name);
printf("Enter Subject Code :");
gets(s->subject_code);
printf("Enter Subject Name :");
gets(s->subject_name);
printf("Enter Lecturer Name :");
gets(s->lecturer_name);
printf("Enter credit hour for course 8 :");
scanf("%d", &s->ch_cs8);
printf("\n");
gets(s->student_name);
printf("Enter Subject Code :");
gets(s->subject_code);
printf("Enter Subject Name :");
gets(s->subject_name);
printf("Enter Lecturer Name :");
gets(s->lecturer_name);
printf("Enter credit hour for course 9 :");
scanf("%d", &s->ch_cs9);
printf("\n");
gets(s->student_name);
printf("Enter Subject Code :");
gets(s->subject_code);
printf("Enter Subject Name :");
gets(s->subject_name);
printf("Enter Lecturer Name :");
gets(s->lecturer_name);
printf("Enter credit hour for course 10 :");
scanf("%d", &s->ch_cs10);
}
int computed_gpa(int gpa)
{
char grade;
if(gpa >=90)
grade = ''4'';
else if(gpa >=80)
grade = ''3'';
else if(gpa >=70)
grade = ''2'';
else if(gpa >=60)
grade = ''1'';
else
grade = ''0'';
return grade;
}
我可以知道为什么只显示最后一个输入吗? 1-9的输入未显示
may i know why it just show the last input only? 1-9 input did not show out
推荐答案
由于它不是确切的重新发布,因此我将尝试引导您朝着正确的方向前进:
Since its not an exact repost, I''ll try to lead you in the right direction:
struct STUDENT_REC{
char name[100];
int gpa;
int total_hours;
struct ch_cs1; //<-- What kind of structure is this? You're declaring that its a struct but not what type.
struct ch_cs2;
struct ch_cs3;
struct ch_cs4;
struct ch_cs5;
struct ch_cs6;
struct ch_cs7;
struct ch_cs8;
struct ch_cs9;
struct ch_cs10;
};
这段代码显然是重复的,创建一个函数,然后遍历所有过程:
This code is clearly repeating, make a function to do so, then loop through all the course:
printf("Enter Subject Code :");
gets(s->subject_code);
printf("Enter Subject Name :");
gets(s->subject_name);
printf("Enter Lecturer Name :");
gets(s->lecturer_name);
printf("Enter credit hour for course 1 :");
scanf("%d", &s->ch_cs1);
printf("\n");
...而且,结构数组也是合法的,因此实现了更简洁的实现(稍后将允许循环):
...And, arrays of structures are also legal, so a cleaner implementation (that''ll allow the looping later):
struct STUDENT_REC{
char name[100];
int gpa;
int total_hours;
struct COURSE courses[10];
};
您的代码
printf("Enter credit hour for course 9 :");
scanf("%d", &s->ch_cs9);
printf("\n");
在每一行中尝试一下:
try this in every line:
printf("\n Enter credit hour for course 9 :");
scanf("%d",&s->ch_cs9);
这篇关于在c中使用struc显示输出的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文