c语言高手帮个忙(请先看问题,好解答
程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[ ][ N ],int n),该函数的功能是使数组左下半三角元素中的值加上n。 例如:若n的值为3,a数组中的值为 a=2 5 4 1 6 9 5 3 7 则返回主程序后a数组中的值应为 5 5 4 4 9 9 8 6 10 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include <stdio.h> #include <conio.h> #include <stdlib.h> #define N 5 fun(int a[ ][N], int n) { int i, j; for(i=0; i<=N; i++) for(j=0; j<=i; j++) a[i][j]=a[i][j]+n; /*使数组左下半三角元素中的值加上n*/ } main() { FILE *wf; int a[N][N],n, i,j; int b[N][N]={2,5,4,0,0,1,6,9,0,0,5,3,7}; clrscr(); printf("***** The array *****\n"); for(i=0; i<N; i++) /*产生一个随机5*5矩阵*/ { for(j=0; j<N; j++) { a[i][j]=rand()%10; printf("%4d", a[i][j]); } printf("\n"); } do n=rand()%10; /*产生一个小于5的随机数n*/ while(n>=5); printf("n=%4d\n",n); fun(a, n); printf("*****THE RESULT*****\n"); for(i=0; i<N; i++) { for (j=0; j<N; j++) printf("%4d",a[i][j]); printf("\n"); } /******************************/ wf=fopen("out.dat","w"); fun(b,3); for(i=0; i<N; i++) { for (j=0; j<N; j++) fprintf(wf,"%4d",b[i][j]); fprintf(wf,"\n"); } fclose(wf); /*****************************/ } 后面打星号部分做什么用的????
后面这段语句的意思就是打开一个文件out。dat,将fun函数处理过的b数组循环写入out。dat文件中,具体函数的解释如下: fopen是C语言的文件打开函数,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式) 其中,“文件指针名”必须是被说明为FILE 类型的指针变量,主函数中的这句话FILE *wf;就是对wf变量的声明。
"文件名"是被打开文件的文件名,在提问中就是"out。dat"。 "使用文件方式"是指文件的类型和操作要求,在提问中是"w",是"wt"格式的简略格式,表示以只写方式打开或建立一个文本文件,只允许写数据。 fprintf是C语言的格式化写函数,就是向文件指针wf指向的文件中写入数据,在提问中就是将b数组中的数据以"%4d"的格式(宽度为4的整型)循环写入out。
dat文件。 fclose(wf);是关闭文件指针,完成文件的写操作。 。
答:大概是这样了,我这没有程序,你先运行下,出错再找我 #include asum(*a) {int i; double aver,t; t=0; for(i=0;...详情>>