1
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:把20个随机数存入一个数组,然后输出该数组中的
最小值。其中确定最小值的下标的操作在fun函数中
实现,请给出该函数的定义。
*********Begin**********和********** End **********不可删除
------------------------------------------------*/
#include "stdio.h"
#include "stdlib.h"
#define VSIZE 20
int vector[VSIZE] ;
int fun(int list[],int size)
{
/*********Begin**********/
/********** End **********/
}
main()
{
int i;
void NONO();
for (i=0;i<VSIZE;i++)
{
vector[i]=rand();
printf("Vector[%d]=%6d\n",i,vector[i]);
}
i=fun(vector,VSIZE);
printf("\nMininum: Vector[%d]=%6d\n",i,vector[i]);
NONO();
}
void NONO()
{
int i,t;
FILE *fp ;
fp = fopen("out.dat", "w") ;
for (i=0;i<VSIZE;i++)
{
fprintf(fp,"Vector[%d]=%6d\n",i,vector[i]);
}
t=fun(vector,VSIZE);
fprintf(fp,"\nMininum: Vector[%d]=%6d\n",t,vector[t]);
fclose(fp) ;
}
答案
int i,min=0;
for(i=1; i <size; i++)
if(list[min]>list[i])
min=i;
return min;
2
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:编写函数fun,函数的功能是:求5行5列矩阵的
主、副对角线上元素之和。注意,两条对角线
相交的元素只加一次。
例如:主函数中给出的矩阵的两条对角线的和为45。
--------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
*********Begin**********和********** End **********不可删除
------------------------------------------------*/
#include "stdio.h"
#define M 5
int fun(int a[M][M])
{
/*********Begin**********/
/********** End **********/
}
main()
{
int a[M][M]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8},{1,3,4,5,6}};
int y;
y=fun(a);
printf("s=%d\n",y);
TestFunc();
}
TestFunc()
{
FILE *IN,*OUT;
int iIN[M][M],iOUT;
int i,j,k;
IN=fopen("16.in","r");
if(IN==NULL)
{printf("Please Verify The Currernt Dir..It May Be Changed");
}
OUT=fopen("16.out","w");
if(OUT==NULL)
{printf("Please Verify The Current Dir.. It May Be Changed");
}
for(k=0;k<10;k++)
{ for(i=0;i<M;i++)
for(j=0;j<M;j++)
fscanf(IN,"%d",&iIN[i][j]);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案
int s=0;
int i,j;
for(i=0;i<M;i++)
s=s+a[i][i]+a[i][M-1-i];
s=s-a[(M-1)/2][(M-1)/2];
return s;