检查鞍点
#include<stdio.h>
fun (int (*a)[4],int N,int M)
{
int *p1,*p2,i,j,k;
for(i=0; i<N; i++)
{
p1 = a+i;
for(j=0; j<M; j++)
{
if(*p1 < *(*(a+i)+j))
p1 = *(a+i)+j;
k = j;
}
p2 = *(a+i)+k;
for(j=0; j<k; j++)
{
if(*p2 > *(*(a+i)+k))
p2 =*(a+i)+k;
}
if(*p2 == *p1 )
return *p1;
else
return 0;
}
}
int main()
{
int i,j,k,x;
int N=3,M=4;
int a[N][M];
int (*p)[M];
p=a;
printf(“请输入数组元素:\n”);
for(i=0; i<N; i++)
{
for(j=0; j<M; j++)
scanf("%d",&a[i][j]);
}
if(fun(a,3,4))
printf(“鞍点为:%d”,fun(a,3,4));
else
printf(“无鞍点”);
}
#include <stdio.h>
#include <string.h>
void fun(char *p[],int n)
{
int i,j;
char *temp;
for(i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
{
if(strcmp(p[i],p[j])>0)
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
}
main()
{
char *str[10]= {“abc”,“aabdf”,“dcdbe”,“abbd”,“cdfgggege”};
int i,j;
printf(“原数组为:\n”);
for(i=0; i<5; i++)
puts(str[i]);
fun(str,5);
printf(“输出字符串为:\n”);
for(i=0; i<5; i++)
puts(str[i]);
}