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