//将3*4矩阵中找出行最大,列最小的那个元素。
#include <stdio.h>
#define M 3
#define N 4
void fun(int (*a)[N])
{ int i=,j,find=,rmax,c,k;
while( (i<M) && (!find))//这里发现i没有进行递增操作。
{ rmax=a[i][]; c=;
for(j=; j<N; j++)
if(rmax<a[i][j]) {
/**********found**********/
rmax=a[i][j]; c= j ; }//找出行最大的,并把列数赋予c。
find=; k=;//设置标志位find
while(k<M && find) {
/**********found**********/
if (k!=i && a[k][c]<=rmax) find= ;//不是这一列最小的。
k++;
}
if(find) printf("find: a[%d][%d]=%d\n",i,c,a[i][c]);
/**********found**********/
i++ ;//下一次循环
}
if(!find) printf("not found!\n");
}
void main()
{ int x[M][N],i,j;
printf("Enter number for array:\n");
for(i=; i<M; i++)
for(j=; j<N; j++) scanf("%d",&x[i][j]);
printf("The array:\n");
for(i=; i<M; i++)
{ for(j=; j<N; j++) printf("%3d",x[i][j]);
printf("\n\n");
}
fun(x);
}
//m个人的成绩存放在数组中,fun函数功能:将低于平均值的人数作为函数返回值,将低于平均分的分数放入below数组中。
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int fun(int score[],int m, int below[])
{
int i = ,avg,sum=,s=,j=;
for (i; i < m; i++)
{
sum += score[i];
}
avg = sum / m;
for (i = ; i < m; i++)
{
if (score[i] < avg)
{
below[j++] = score[i];
s++;
}
}
return s;
}
void main()
{
FILE *wf;
int i, n, below[];
int score[]={,,,,,,,,};
system("CLS");
n=fun(score, , below);
printf("\nBelow the average score are: ");
for(i=;i<n;i++)
printf("%d ",below[i]);
/******************************/
wf=fopen("out.dat","w");
for(i=;i<n;i++)
fprintf(wf,"%d ",below[i]);
fclose(wf);
/*****************************/
}