56.不会做
57.
#include <stdio.h>
void average(float *p,int n)
{
int i=0;
float *p_end,sum=0,ave;
p_end=p+n;
for (;p<p_end;p++,i++)
{
printf("%d=%.0f ",i,*p);
sum+=(*p);
}
printf("\n\n");
ave=sum/n;
printf("总分数:%.2f\n",ave);
}
void search(float (*p)[4],int n)//float p[][4];
{
int i,j;
printf("请输入你要查找的行:");
scanf("%d",&i);
printf("*******************\n");
if (i<n)
{
printf("要查找的是第%d行\n",i);
for (j=0;j<4;j++)
{
printf("%.2f\n",p[i][j]);
}
}
else
{
printf("您输入的行数不再范围内,请从新输入:");
}
printf("*******************\n");
}
int main()
{
float score[3][4]={{65,67,79,60},{80,87,90,81},{90,99,100,98}};
average(score,12);
search(score,3);
return 0;
}
58.
//有一个班,3个学生,各学4门课,查找一门以上课程不及格的学生,输出他们的全部课程的成绩
#include <stdio.h>
void search(float(*p)[4], int n);
int main() {
float score[3][4] = { {65,57,70,60},{58,87,90,81},{90,99,100,98} };
search(score, 3);
return 0;
}
void search(float(* p)[4], int n) {
int i, j, flag;
for (i = 0; i < n; i++) {
flag = 0;
for (j = 0; j < 4; j++) {
if (*(*(p + i) + j) < 60)flag = 1;
}
if (flag == 1) {
for (j = 0; j < 4; j++) {
printf("%f\t", *(*(p + i) + j));
}
printf("\n");
}
}
}
59.#include <stdio.h>
maxAndMin(int a,int b,int* max,int* min){
printf("begin max=%d \n",*max); //0
*max=a>b?a:b;//78
*min=a<b?a:b;
printf("max =%d \n",*max);
printf("min =%d \n",*min);
}
main(){
int a=0;
int b=0;
maxAndMin(78,12,&a,&b);
printf("main max =%d \n",a);
printf("main min =%d \n",b);
}
60.
#include <stdio.h>
int main() {
float* search(float(*p)[4], int n);
//首先定义一个数组,来存放这a个学生的成绩
float score[][4] = { {60,70,80,90},{56,89,67,88},{34,78,90,66} };
//输入一学生序号
int k,i;
float* p;
scanf_s("%d", &k);
p = search(score, k);
for (i = 0; i < 4; i++) {
printf("%f\t", *(p + i));
}
printf("\n");
return 0;
}
float* search(float(*p)[4], int n) {
float *pt;
pt = *(p + n);
return pt;
}