首页 > 代码库 > C语言例题系列--------第十四天

C语言例题系列--------第十四天

//27.有一个整型二维数组,大小为m x n,要求找出其中最大值所在的行和列以及该最大值。
//请编写一个函数max,要求如下:
//(1)以数组名和数组大小为该函数的形参
//(2)数组元素的值在main函数中输入,结果在函数max中输出 
/*#include<stdio.h>
int max(int x[3][4],int m,int n)
{
int max=x[0][0];
int i,j;
for(i=0;i<m;i++)
for(j=1;j<n;j++)
if(max<x[i][j])
max=x[i][j];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(x[i][j]==max)
printf("最大值所在行为第%d行,所在列为第%d列\n",i,j);
return max;
}
int main()
{
	int a[3][4],i,j,k;
	printf("请输入数组中元素的值:");
	for(i=0;i<3;i++)
		for(j=0;j<4;j++)
			scanf("%d",&a[i][j]);
		k=max(a,3,4);
		printf("max is %d\n",k);

return 0;
}
*/
#include<stdio.h>
void maxval(int arr[][4],int m,int n)
{
 int i,j,max,line=0,col=0;
 int(*p)[4];
 max=arr[0][0];
 p=arr;
 for(i=0;i<m;i++)
	 for(j=0;j<n;j++)
		 if(max<*(*(p+i)+j))
		 {
		 max=*(*(p+i)+j);
		 line=i;
		 col=j;
		 }
}
int main()
{
 int array[3][4],i,j,k,c;
 printf("input lines of array:");
 scanf("%d",&k);
 printf("\ninput column of array:");
 scanf("%d",&c);
 printf("\ninput data use comma between data \n");
 for(i=0;i<k;i++)
	 for(j=0;j<c;j++)
		 printf("%4d",array[i][j]);
	 printf("\n");
maxval(array,k,c);

return 0;
}
//28.有n个学生,每个学生参加m门课程的考试,要求编写一函数,能检查n个学生有无不及格的课程。
//如果某一学生有一门或一门以上的课程不及格,就输出该学生的学号
//(学号从0算起,即0,1,2,...)及其全部课程成绩 
//我写的代码
/*#include<stdio.h>
int main()
{   
int i;
	struct student
    {
	int number;
	int math;
	int chinese;
	int English;
	int physical;
	}stu[5];
	 for(i=0;i<5;i++)
	 {
	 	printf("该学生的学号为:");
		 scanf("%d",&stu[i].number);
		 printf("该学生的数学成绩,语文成绩,英语成绩,物理成绩分别为:");
		 scanf("%d%d%d%d",&stu[i].math,&stu[i].chinese,&stu[i].English,&stu[i].physical);
	 }
	 for(i=0;i<5;i++)
	 if(stu[i].math<60||stu[i].chinese<60||stu[i].English<60||stu[i].physical<60)
	 {
	 	printf("该不及格学生的学号为:");
	 	printf("%d\n",stu[i].number);
	 	printf("该不及格学生的所有成绩分别为:\n");
	 	printf("数学为:%d,语文为:%d,英语为:%d,物理为:%d\n",stu[i].math,stu[i].chinese,stu[i].English,stu[i].physical); 
	 }
	
	return 0;
}
*/
//答案给的代码
#include<stdio.h>
void search(float (*p)[4],int m)
{
 int i,j,flag;
 for(i=0;i<m;i++)
 {
 flag=0;
 for(j=0;j<4;j++)
 if(*(*(p+i)+j)<60)
	 flag=1;
 if(flag==1)
 {
 printf("No.%d is flunked,scores are:\n",i);
 for(j=0;j<4;j++)
	 printf("%5.1f",*(*(p+i)+j));
 printf("\n");
 }
 }

}
int main()
{
	float score[5][4]={{65,80,78,90},{98,59,100,83},{92,66,78,70},{78,58,80,77},{64,68,70,81}};
	search(score,5);
return 0;
}


本文出自 “鹏哥的博客” 博客,谢绝转载!

C语言例题系列--------第十四天