8-10-2
#include
{void change(int *p); int a[5][5],*p,i,j;
printf(\ for (i=0;i<5;i++) for (j=0;j<5;j++)
scanf(\ p=&a[0][0]; change(p);
printf(\ for (i=0;i<5;i++) {for (j=0;j<5;j++)
printf(\ printf(\ }
return 0; }
void change(int *p) //交换函数 {int i,j,temp;
int *pmax,*pmin; pmax=p; pmin=p;
for (i=0;i<5;i++) //找最大值和最小值的地址,并赋给 pmax,pmin for (j=i;j<5;j++)
{if (*pmax<*(p+5*i+j)) pmax=p+5*i+j; if (*pmin>*(p+5*i+j)) pmin=p+5*i+j; }
temp=*(p+12); //将最大值与中心元素互换 *(p+12)=*pmax; *pmax=temp;
temp=*p; //将最小值与左上角元素互换 *p=*pmin; *pmin=temp;
pmin=p+1;
//将a[0][1]的地址赋给pmin,从该位置开始找最小的元素 for (i=0;i<5;i++) //找第二最小值的地址赋给 pmin for (j=0;j<5;j++) {if(i==0 && j==0) continue;
if (*pmin > *(p+5*i+j)) pmin=p+5*i+j; }
temp=*pmin; //将第二最小值与右上角元素互换 *pmin=*(p+4); *(p+4)=temp;
pmin=p+1;
for (i=0;i<5;i++) //找第三最小值的地址赋给pmin for (j=0;j<5;j++) {if((i==0 && j==0) ||(i==0 && j==4)) continue; if(*pmin>*(p+5*i+j)) pmin=p+5*i+j; }
temp=*pmin; // 将第三最小值与左下角元素互换 *pmin=*(p+20); *(p+20)=temp;
pmin=p+1;
for (i=0;i<5;i++) // 找第四最小值的地址赋给pmin for (j=0;j<5;j++) {if ((i==0 && j==0) ||(i==0 && j==4)||(i==4 && j==0)) continue; if (*pmin>*(p+5*i+j)) pmin=p+5*i+j; }
temp=*pmin; //将第四最小值与右下角元素互换 *pmin=*(p+24); *(p+24)=temp; }
8-11-1
#include
{void sort(char s[][6]); int i;
char str[10][6];
printf(\ for (i=0;i<10;i++) scanf(\ sort(str);
printf(\ for (i=0;i<10;i++) printf(\ return 0; }
void sort(char s[10][6]) {int i,j;
char *p,temp[10]; p=temp;
for (i=0;i<9;i++) for (j=0;j<9-i;j++)
if (strcmp(s[j],s[j+1])>0) {strcpy(p,s[j]);
strcpy(s[j],s[+j+1]); strcpy(s[j+1],p); } }
8-11-2
#include
{void sort(char (*p)[6]); int i;
char str[10][6]; char (*p)[6];
printf(\ for (i=0;i<10;i++) scanf(\ p=str; sort(p);
printf(\ for (i=0;i<10;i++) printf(\ return 0; }
void sort(char (*s)[6]) {int i,j;
char temp[6],*t=temp; for (i=0;i<9;i++) for (j=0;j<9-i;j++)
if (strcmp(s[j],s[j+1])>0) {strcpy(t,s[j]);
strcpy(s[j],s[+j+1]); strcpy(s[j+1],t); }
} 8-12
#include
{void sort(char *[]); int i;
char *p[10],str[10][20]; for (i=0;i<10;i++) p[i]=str[i];
printf(\ for (i=0;i<10;i++) scanf(\ sort(p);
printf(\ for (i=0;i<10;i++) printf(\ return 0; }
void sort(char *s[]) {int i,j;
char *temp; for (i=0;i<9;i++) for (j=0;j<9-i;j++)
if (strcmp(*(s+j),*(s+j+1))>0) {temp=*(s+j); *(s+j)=*(s+j+1); *(s+j+1)=temp; } } 8-13
#include
{float integral(float(*)(float),float,float,int);//对integarl函数的声明 float fsin(float); //对fsin函数的声明 float fcos(float); //对fcos函数的声明 float fexp(float); //对fexp函数的声明 float a1,b1,a2,b2,a3,b3,c,(*p)(float); int n=20;
printf(\scanf(\printf(\scanf(\printf(\scanf(\p=fsin;
c=integral(p,a1,b1,n);
printf(\p=fcos;
c=integral(p,a2,b2,n);
printf(\p=fexp;
c=integral(p,a3,b3,n);
printf(\return 0; }
float integral(float(*p)(float),float a,float b,int n) {int i;
float x,h,s; h=(b-a)/n; x=a; s=0;
for(i=1;i<=n;i++) {x=x+h;
s=s+(*p)(x)*h; }
return(s); }
float fsin(float x) {return sin(x);} float fcos(float x) {return cos(x);} float fexp(float x) {return exp(x);} 8-14
#include
{void sort (char *p,int m);