一、通过终端输入实现计算器。
eg:终端命令输入./a.out 100 + 200
输出:300
eg:终端命令输入./a.out 100 - 200
输出:-100
二、通过数组指针计算二维数组的最大值并返回,使用函数指针实现函数调用。
三、附录
1.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
//通过终端输入实现计算器
int m=atoi(argv[1]);
int n=atoi(argv[3]);
for(int i=0;i<argc;i++){
printf("%s",argv[i]);
}
if(strcmp(argv[2],"+")==0){
printf("=%d",m+n);
puts("");
}
else if(strcmp(argv[2],"-")==0){
printf("=%d",m-n);
puts("");
}
else if(strcmp(argv[2],"*")==0){
printf("=%d",m*n);
puts("");
}
else if(strcmp(argv[2],"/")==0 && n!=0){
printf("=%.2f",(float)m/n);
puts("");
}
return 0;
}
2.数组指针,函数指针
int Max(int (*p)[3],int line,int row);
int main(int argc, const char *argv[])
{
int arr[3][3]={8,2,1,12,6,9,25,14,99};
int line=sizeof(arr)/sizeof(arr[0]);
int row=sizeof(arr[0])/sizeof(arr[0][0]);
int (*p)[3]=arr;
int (*q)(int (*p)[3],int line,int row)=Max;
printf("max=%d\n",q(p,line,row));
return 0;
}
int Max(int (*p)[3],int line,int row){
int max=**p;
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
if(max<*(*(p+i)+j)) max=*(*(p+i)+j);
}
}
return max;
}