c primer plus 第十章

10-2

#include<stdio.h>
double copy_arr(double *,double *,int n);
double copy_ptr(double *,double *,int n);
int main(void)
{
	double source[5]={1.1,2.2,3.3,4.4,5.5};
	double target1[5];
	double target2[5];
	copy_arr(source,target1,5);
	printf("\n");
	copy_ptr(source,target2,5);
	
}
double copy_arr(double *source,double *target1,int n)
{
	int i,total=0;
	for(i=0;i<n;i++)
	{
	target1[i]=source[i];
	printf("%5.1f",target1[i]);
	}
}
double copy_ptr(double *source,double *target2,int n)
{
	int i,total=0;
	for(i=0;i<n;i++)
	{
		target2=source;
		printf("%5.1f",*target2);
		target2++;
		source++;
		
	}
}

10-6

#include<stdio.h>  
double copy_arr(double *,double *,int n);  
double copy_ptr(double *,double *,int n);  
int main(void)  
{  
    double source[2][5]={{1.2,3.2,2.2,4.2,5.2},{2.2,4.2,12.2,4.2,1.2}};  
    double target1[2][5];  
    double target2[2][5];  
    copy_arr(source,target1,10);  
    printf("\n");  
    copy_ptr(source,target2,10);  
      
}  
double copy_arr(double *source,double *target1,int n)  
{  
    int i,total=0;  
    for(i=0;i<n;i++)  
    {  
    target1[i]=source[i];  
    printf("%5.1f",target1[i]);  
    }  
}  
double copy_ptr(double *source,double *target2,int n)  
{  
    int i,total=0;  
    for(i=0;i<n;i++)  
    {  
        *(target2+i)=*(source+i);  
        printf("%5.1f",*(target2+i));  
       
          
    }  
}  

10-12

#include<stdio.h>
#define ROWS 3
#define COLS 2
void input(double ar[],int n);
void show(double ar[ROWS][COLS]);
double average(double ar[],int n);
double average_all(double ar[ROWS][COLS]);
double b_max(double ar[ROWS][COLS]);
int main(void)
{
	double test[ROWS][COLS];
	int r;
	for(r=0;r<ROWS;r++)
	{
		printf("Please five number for a row:\n");
		input(test[r],COLS);
	}
	
	show(test);
	
	for(r=0;r<ROWS;r++)
	printf("average #%d is %.0f\n",r+1,average(test[r],COLS));
	
	printf("All value's average is %.0lf\n",average_all(test));
	printf("The value %.0lf is the max.\n",b_max(test));
}
void input(double ar[],int n)
{
	int c;
	for(c=0;c<COLS;c++)
	 {
	 	printf("Enter value#%d: ",c+1);
	 	scanf("%lf",&ar[c]);
	 }
}
void show(double ar[ROWS][COLS])
{
	int r,c;
	for(r=0;r<ROWS;r++)
	  for(c=0;c<COLS;c++)
	   {
	     printf("%.0lf ",ar[r][c]);
	     putchar('\n');
       }
}
double average(double ar[],int n)
{
	int c;
	double tot=0;
	for(c=0;c<COLS;c++)
	 tot+=ar[c];
	 return tot/COLS;
	
}
double average_all(double ar[ROWS][COLS])
{
	int r,c;
	double tot=0;
	for(r=0;r<ROWS;r++)
	for (c=0;c<COLS;c++)
	 tot+=ar[r][c];
	 
	 return tot/(ROWS*COLS);
}
double b_max(double ar[ROWS][COLS])
{
	int r,c;
	double max;
	for(r=0;r<ROWS;r++)
	 for(c=0,max=ar[r][c];c<COLS;c++)
	  {
	  	if(max<ar[r][c])
	  	max=ar[r][c];
	  }
	return max;
}

10-13//和12大同小异

#include<stdio.h>
#define ROWS 3
#define COLS 8
void input(double ar[],int n);
void show(int rows,int cols,double ar[rows][cols]);
double average(double ar[],int n);
double average_all(int rows,int cols,double ar[rows][cols]);
double b_max(int rows,int cols,double ar[rows][cols]);
int main(void)
{
	double test[ROWS][COLS];
	int r;
	for(r=0;r<ROWS;r++)
	{
		printf("Please five number for a row:\n");
		input(test[r],COLS);
	}
	
	show(ROWS,COLS,test);
	
	for(r=0;r<ROWS;r++)
	printf("average #%d is %.0f\n",r+1,average(test[r],COLS));
	
	printf("All value's average is %.0lf\n",average_all(ROWS,COLS,test));
	printf("The value %.0lf is the max.\n",b_max(ROWS,COLS,test));
}
void input(double ar[],int n)
{
	int c;
	for(c=0;c<COLS;c++)
	 {
	 	printf("Enter value#%d: ",c+1);
	 	scanf("%lf",&ar[c]);
	 }
}
void show(int rows,int cols,double ar[rows][cols])
{
	int r,c;
	for(r=0;r<rows;r++)
	  for(c=0;c<cols;c++)
	   {
	     printf("%.0lf ",ar[r][c]);
	     putchar('\n');
       }
}
double average(double ar[],int n)
{
	int c;
	double tot=0;
	for(c=0;c<COLS;c++)
	 tot+=ar[c];
	 return tot/COLS;
	
}
double average_all(int rows,int cols,double ar[rows][cols])
{
	int r,c;
	double tot=0;
	for(r=0;r<rows;r++)
	for (c=0;c<cols;c++)
	 tot+=ar[r][c];
	 
	 return tot/(rows*cols);
}
double b_max(int rows,int cols,double ar[rows][cols])
{
	int r,c;
	double max;
	for(r=0;r<rows;r++)
	 for(c=0,max=ar[r][c];c<cols;c++)
	  {
	  	if(max<ar[r][c])
	  	max=ar[r][c];
	  }
	return max;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值