填空题

请补充函数fun(),该函数的功能是:输出一个N×N矩阵,N由键盘输入,矩阵元素的值为随机数,并计算出该矩阵四周边元素的平均值,结果由函数返回。例如:当N=4时:
注章:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序; #include<stdio.h> #include<conio.h> #include<stdlib.h> #define N 20 double fun(int a[ ][N],int n) { int i,j; int k; double s=0.0; double aver=0.0; printf("*****The array*****\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) { a[i][j]=rand()%10; printf("%4d",a[i][j]); if( 【1】 ) s+=a[i][j]; } printf("\n"); } k= 【2】 ; aver= 【3】 ; return aver; } main() { int a[N][N]; int n; double s; Clrscr(); printf("*****Input the dimension of array N*****\n"); scanf("%d",&n); s=fun(a,n); printf("***** THE RESULT *****\n"); printf("The average is %2,3f\n",s); }

【参考答案】

[1] i==0||i==n-1||j==0||j==n-1
热门 试题

问答题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把指定分数范围之外的学生数据放在b所指的数组中,分数范围之外的学生人数由函数值返回。例如,输入的分数是80和89,则应当把分数低于80和高于89的学生数据进行输出,不包含80分和89分的学生数据。主函数中把80放在low中,把89放在heigh中。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序#include <stdio.h>#define N 16typedef struct{char num[10];int s;}STREC;int fun(STREC *a,STREC *b,int 1,int h){}main (){STREC s[N]={{ GA005 ,55},{ GA003 ,96},{ GA002 ,80},{ GA004 ,68},{ GA001 ,88},{ GA007 ,74},{ GA008 ,85},{ GA006 ,99},{ GA015 ,90},{ GA013 ,53},{ GA012 ,66},{ GA014 ,82},{ GA0ll ,73},{ GA017 ,69},{ GA018 ,64},{ GA016 ,86}};STEC h[N],tt;FILE *out;int i,j,n,low,heigh,t;printf( Enter 2 integer number low & heigh: );scanf( %d%d ,&low,&heigh);if(heigh<low){t=heigh;heigh=low;low=t;}n=fun(s,h,low,heigh);printf( The student ’s data out%d--%d: n ,low,heigh);for(i=0;i<n;i++)printf( %s%4d n ,h[i].num,h[i].s); *输出指定分数范围内的学生记录* printf( n );out=fopen( out23.dat , w );fprintf(out, %d n ,n);n=fun(s,h,70,79);for(i=0;i<n-1;i++) *分数在70~79之外的学生记录按分数从低到高排列* for(j=i+l;i<n;j十+)if(h[i].s>h[j].s){tt=h[i];h[i]=h[j];h[j]=tt;}for(i=0;i<n;i++)fprintf(out, %4d n ,h[i].s);fprintf(out, n );fclose(out);}
填空题
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include <conio.h>#include <string.h>#include <stdio.h>#include <alloc.h>#define N 10typedef 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);}