编写程序,要求输入某学生的两门成绩和等级(等级分为A,B,C,D),输出满足成绩等级为B的并且总分大于175分者的记录.
參考答案:#include <iostream>
#define NULL 0
typedef struct list
{
float grade1;
float grade2;
char lvl;
struct list* next;
}ListNode;
ListNode* CreateList(void)
{
float grade1;
float grade2;
char lvl;
ListNode* head=(ListNode*)malloc(sizeof(ListNode));
ListNode *s,*r;
r=head;
scanf("%f %f %c",&grade1,&grade2,&lvl);
while(grade1>=0)
{
s=(ListNode*)malloc(sizeof(ListNode));
s->grade1=grade1;
s->grade2=grade2;
s->lvl=lvl;
r->next=s;
r=s;
scanf("%f %f %c",&grade1,&grade2,&lvl);
}
r->next=NULL;
return head;
}
void PrintList(ListNode* head)
{
ListNode* p1=head->next;
while(p1!=NULL)
{
if(p1->grade1+p1->grade2>=175&&p1->lvl=='B')
printf("%.2f,%.2f,%c\n",p1->grade1,p1->grade2,p1->lvl);
p1=p1->next;
}
}
int main()
{
ListNode* head = CreateList();
PrintList(head);
return 0;
}