代码个人制作,如需解析请私信。
7-1
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[3][3];
int *p;
p=a;
int i=0;
for(i=0;i<9;i++){
scanf("%d",p+i);
}
int max=*p,min=*p;
for(i=0;i<9;i++){
if(*(p+i)>=max)max=*(p+i);
if(*(p+i)<=min)min=*(p+i);
}
printf("max=%d min=%d",max,min);
return 0;
}
7-2
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
scanf("%d",&n);
if(n<0||n>10)exit(0);
int a[n][n];
int (*p)[n];
p=a;
int i,t;
for(i=0;i<n*n;i++){
scanf("%d",*p+i);
}
for(i=0;i<n;i++){
for(t=0;t<n;t++){
printf("%4d",*(*(p+t)+i));
if(t==(n-1))printf("\n");
}
}
return 0;
}
7-3
#include <stdlib.h>
#include <stdio.h>
int main ()
{
int Grade[4][4];
int (*p)[4];
p=Grade;
int i=0,t=0;
for(i=0;i<16;i++){
scanf("%d",*p+i);
}//输入数据至grade数组
int n[4]={0,0,0,0};//四位同学分别挂科数目
int *pn; pn=n;
for(i=0;i<4;i++){
for(t=0;t<4;t++){
if((*((*(p+t))+i))<60) *(pn+i)+=1;
}
}
for(i=0;i<4;i++){
printf("%d ",*(pn+i));
}
return 0;
}
7-4
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
void normal_input (int (*p)[],int row) {
int i;
for(i=0;i<row*row;i++){
scanf("%d",*p+i);
}
}
void normal_output (int (*p)[],int row) {
int i;
for(i=0;i<row*row;i++){
printf("%d",*(*p+i));
}
}
int main()
{
int n;
scanf("%d",&n);
if(n<=1||n>10) exit(0);
int (*p)[n]=(int (*)[n])malloc((n*sizeof(int))*n);
int i=0,t=0;
normal_input(p,n);
int Result=0;
for(i=0;i<n;i++){
for(t=0;t<n;t++){
if(i+t==n-1) continue;
else if(i==n-1) continue;
else if(t==n-1) continue;
else Result+=*(*(p+i)+t);
}
}
printf("%d",Result);
free(p);
return 0;
}
7-5
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int r,c;
void normal_input (int (*p)[c],int row,int column) {
int i;
for(i=0;i<row*column;i++){
scanf("%d",*p+i);
}
}
void normal_output (int (*p)[c],int row,int column) {
int i;
for(i=0;i<row*column;i++){
printf("%d ",*(*p+i));
}
}
void print_partmax(int (*p)[c],int row,int column){
int i,t,k=0;
int target=0,up=0,down=0,left=0,right=0;
for(i=0;i<row;i++){
for(t=0;t<column;t++){
target=(*(*(p+i)+t));
if(i!=0&&i!=row-1&&t!=0&&t!=column-1){
up=(*(*(p+i-1)+t));
down=*(*(p+i+1)+t);
left=*(*(p+i)+t-1);
right=*(*(p+i)+t+1);
}
else continue;
if(target>up&&target>down&&target>left&&target>right){
printf("%d %d %d\n",target,i+1,t+1);
k++;
}
}
}
if(k==0) printf("None %d %d",row,column);
}
int main()
{
scanf("%d %d",&r,&c);
if(r<3||r>20) exit(0);
if(c<3||c>20) exit(0);
int (*p)[c]=(int (*)[c])malloc(r*(c*sizeof(int)));
normal_input(p,r,c);
print_partmax(p,r,c);
free(p);
return 0;
}