1.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a,b;
char *p=argv[1];
char *q=argv[3];
a=atoi(p);
b=atoi(q);
if(strcmp(argv[2],"+")==0)
{printf("%d+%d=%d\n",a,b,a+b);}
if(strcmp(argv[2],"-")==0)
{ printf("%d-%d=%d\n",a,b,a-b);}
if(strcmp(argv[2],"*")==0)
{ printf("%d*%d=%d\n",a,b,a*b);}
if(strcmp(argv[2],"/")==0)
{ printf("%d/%d=%d\n",a,b,a/b);}
return 0;
}
2.
//数组指针返回二维数组最大值 要求函数指针调用
#include <stdio.h>
void input();
int max();
int main(int argc, const char *argv[])
{
int m,n;
printf("输入行数:\n");
scanf("%d",&m);
printf("输入列数:\n");
scanf("%d",&n);
puts("");
int arr[m][n];
input(m,n,arr);
int (*p)(m,n,arr)=max;
int max=p(m,n,arr);
printf("max=%d\n",max);
return 0;
}
void input(int m,int n,int (*p)[n])
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d",*(p+i)+j);
}
}
}
int max(int m,int n,int (*p)[n])
{
int max=**p;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(*(p[i]+j)>max )
{
*(p[i]+j)=*(p[i]+j)^max;
max=*(p[i]+j)^max;
*(p[i]+j)=*(p[i]+j)^max;
}
}
}
return max;
}