改错题
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <alloc.h>
#define N 10
typedef struct ss
{
char num[10];
int s;
} STU;
STU *fun(STU a[], int m)
{
STU b[N],*t;
int i, j,k;
/**********************found***********************/
*t=calloc(m,sizeof(STU));
for(i=0;i<N;i++)
b[i]=a[i];
for(k=0;k<m;k++)
{
/**********************found***********************/
for (i=j=0;i<N;j++)
if(b[i].s<b[j].s)
j=i;
/**********************found***********************/
t[k].s=b[j].s;
b[j].s=100;
}
return t;
}
outresult(STU a[],FILE *pf)
{
int i;
for(i=0;i<N;i++)
fprintf(pf, "No=%s Mark=%d\n ",a[i].num, a[i].s);
fprintf(pf, "\n\n ");
}
main()
{
STU a[N]={{ "A01 ",77},{ "A02 ",85},{ "A03 ",96},{ "A04 ",65},{ "A05 ",75},
{ "A06 ",96},{ "A07 ",76},{ "A08 ",63},{ "A09 ",69},{ "A10 ",78}};
STU *pOrder;
int i, m;
clrscr();
printf("*****THE RESULT*****\n");
outresult(a,stdout);
printf("\nGive the number of the students who have lower score: ");
scanf("%d",&m);
while(m>10)
{
printf("\nGive the number of the students who have lower score: ");
scanf("%d",&m);
}
pOrder=fun(a,m);
printf("***** THE RESULT*****\n");
printf("The low :\n");
for(i=0;i<m;i++)
printf("%s %d\n",pOrder[i].num, pOrder[i].s);
free(pOrder);
}
〔求改错c语言〕用结构体对N个学生的5门成绩求和,求平均分等
〔求改错c语言〕用结构体对N个学生的5门成绩求和,求平均分等 悬赏分:20 - 离问题结束还有 6 天 5 小时 还要分别统计5门课程中 没门课的最小和最大的分数 有空的高手,给看看,不甚感激!!谢谢你的点击 我调试后它说 main () 这一行 说明语法错误!define N 30 struct student {int ...
c语言帮忙改错!输入n个学生的成绩信息,按照每个学生的个人平均成绩从高...
不好意思。更正,之前说的有错,结构成员相同,不包含指针,可以直接交换。方便的话,给个差评,谢谢。下面是完全按照你的代码改的,已调试运行,详细看 备注:include <stdio.h>#include <stdlib.h>#include<string.h>struct student{ int num; char name[10]; float score[3]; doub...
2010年9月计算机二级C++机考40分考的什么内容...
也就是结构体成员运算符’.’和指向运算符’->’,在编程的过程中,往往会涉及到结构体数组,其实这类数组除了数据类型是结构体以外,其它的特性和普通数组是一样的,结构体除了定义、赋值和初始化以外,它的其它操作和普通变量也是一样的,包括在结构体数组(记录)中进行查找、删除、求最大最小值等操作,我们应该...
把分数最高的学生数据放在b所指的数组中,C++改错
const void *b){return *(int*)(((char*)b)+10)-*(int*)(((char*)a)+10);}void main(){int n;STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",
关于全国计算机二级考试内容的问题
1.结构体和共用体类型数据的定义方法和引用方法。 2.用指针和结构体构成链表,单向链表的建立、输出、删除与插入。 十一、位运算 1.位运算符的含义及使用。 2.简单的位运算。 十二、文件操作 只要求缓冲文件系统(即高级磁盘I\/O系统),对非标准缓冲文件系统(即低级磁盘I\/O系统)不要求。 1.文件类型指针(FILE...
请给我简单介绍一下计算机二级C语言是什么?
十、结构体(即“结构”)与共同体(即“联合”)1. 用typedef说明一个新类型 2. 结构体和共用体类型数据的定义和成员的引用 3. 通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入 十一、位运算 1. 位运算符的含义和使用 2. 简单的位运算 十二、文件操作 只要求缓...
...请各位帮帮我上机试题该怎么过啊?改错跟编程有什么规律不?_百度...
2. 结构化程序设计。3. 面向对象的程序设计方法,对象,方法,属性及继承与多态性。三、 软件工程基础 1. 软件工程基本概念,软件生命周戎概念,软件工具与软件开发环境。2. 结构化分析方法,数据流图,数据字典,软件需求规格说明书。3. 结构化设计方法,总体设计与详细设计。4. 软件测试的方法,白盒...
国家计算机二级C语言考试形式和具体题型,分值和笔试的复习方法_百度知 ...
复习方法:笔试主要是if for while swich i++ ++i (熟练掌握6天) 数组 指针 (5天 出来题要能看懂意思就行)(数组地址 要认真学)结构体和共用体(3天时间 出来能看懂意思) 文件(不学)二级公共基础(4天 好好看一下)做一下历年考题(4天)。笔试这些会了的话 意味着机试填空和改错。
struct Node { int data; struct Node* next; };
这是单链表的存储形式,struct node *next,这里的next表示node内部的指针 ,由node的定义形式看 ,这个node节点由一个int型数值和一个内部指针组成 纯手打,请给分!!!
09年国家计算机二级C语言考试大纲,急用!!!各位,请帮个忙!在下先谢过...
3.通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。十一、位运算 1.位运算符的含义和使用。2.简单的位运算。十二、文件操作 只要求缓冲文件系统(即高级磁盘I\/O系统),对非标准缓冲文件系统(即低级磁盘I\/O系统)不要求。1.文件类型指针(FILE类型指针)。2.文件的打开与关闭(fopen,...