c语言作业第十天(主函数,二维数组指针)

  1. 在命令行输入表达式,实现计算器功能(直接在主函数实现就行)

1 #include<stdio.h>

2 #include<string.h>

3 int StrNum(const char *p)

4 {

5 int sum=0;

6 while(*p)

7 {

8 sum=sum*10+(*p-'0');

9 p++;

10 }

11 return sum;

12 }

13 int main(int argc, const char *argv[])

14 {

15 int num1=StrNum(argv[1]);

16 int num2=StrNum(argv[3]);

17 switch(*argv[2])

18 {

19 case'+':printf("%d\n",num1+num2);break;

20 case'-':printf("%d\n",num1-num2);break;

21 case'*':printf("%d\n",num1*num2);break;

22 case'/':{

23 if((num2)==0)

24 printf("除数不能为0\n");

25 if((num2)!=0)

26 printf("%.2f\n",(float)num1/num2);

27 };break;

28 default:printf("表达式输入错误\n");break;

29 }

30 return 0;

31 }

2.使用指针计算每一列的和

void Sum(int (*p)[],int line,int row)

1 #include<stdio.h>

2 #include<string.h>

3 void Sum(int (*p)[3],int line,int row)

4 {

5 int i,j,sum;

6 for(i=0;i<line;i++)

7 {

8 sum=0;

9 for(j=0;j<row;j++)

10 {

11 sum=sum+*(*(p+i)+j);

12 }

13 printf("第%d行和为%d\n",i+1,sum);

14 }

15 }

16 void lSum(int (*p)[3],int line,int row)

17 {

18 int i,j,sum;

19 for(j=0;j<row;j++)

20 {

21 sum=0;

22 for(i=0;i<line;i++)

23 {

24 sum=sum+*(*(p+i)+j);

25 }

26 printf("第%d列和为%d\n",j+1,sum);

27 }

28 }

29 int main(int argc, const char *argv[])

30 {

31 int a[3][3]={1,2,3,4,5,6,7,8,9};

32 Sum(a,3,3);

33 lSum(a,3,3);

34 return 0;

35 }

3. 使用指针计算每行最大值,每列最小值

void Max(int (*p)[],int line,int row)

void Min(int (*p)[],int line,int row)

1 #include<stdio.h>

2 #include<string.h>

3 void Max(int (*p)[4],int line,int row)

4 {

5 int i,j,max;

6 for(i=0;i<line;i++)

7 {

8 for(j=0;j<row;j++)

9 {

10 if(j==0)

11 max=*(*p+j);

12 if(max<*(*p+j))

13 max=*(*p+j);

14 }

15 printf("第%d行最大值为%d\n",i+1,max);

16 p++;

17 }

18 }

19

20 void Min(int (*p)[4],int line,int row)

21 {

22 int i,j,min;

23 for(i=0;i<row;i++)

24 {

25 for(j=0;j<line;j++)

26 {

27 if(j==0)

28 min=*(*(p+j)+i);

29 if(min>*(*(p+j)+i))

30 min=*(*(p+j)+i);

31 }

32 printf("第%d列最小值为%d\n",i+1,min);

33 }

34 }

35 int main(int argc, const char *argv[])

36 {

37 int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

38 Max(a,3,4);

39 Min(a,3,4);

40 return 0;

41 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值