DAY15 Linux篇C语言,数组指针&&函数指针的用法。

一、通过终端输入实现计算器。

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值