部分习题代码丢失,需要请联系博主。
编译环境:Visual Studio 2017
#include<stdio.h>
#include<stdlib.h>
//2.
void copy_arr(double target1[], double source[], int n);
void copy_ptr(double *p, double *pp, int n);
void copy_ptrs(double *start, double source[], double *end);
int main()
{
int i;
double source[5] = { 1.1,2.2,3.3,4.4,5.5 };
double target1[5];
double target2[5];
double target3[5];
double *p, *pp;
double *start;
p = target2;
pp = source;
start = target3;
copy_arr(target1, source, 5);
copy_ptr(p, pp, 5);
copy_ptrs(start, source, source+5);
printf("target1=");
for (i = 0; i < 5; i++)
printf("%lf ", target1[i]);
printf("\n");
printf("target2=");
for (i = 0; i < 5; i++)
printf("%lf ", target2[i]);
printf("\n");
printf("target3=");
for (i = 0; i < 5; i++)
printf("%lf ", target3[i]);
system("pause");
return 0;
}
void copy_arr(double target1[], double source[], int n)
{
int i;
for (i = 0; i < n; i++)
target1[i] = source[i];
return 0;
}
void copy_ptr(double *p, double *pp, int n)
{
int i;
for (i = 0; i < n; i++)
*(p+i) = *(pp+i);
return 0;
}
void copy_ptrs(double *start, double source[], double *end)
{
while (source<end)
{
*start = *source;
start++;
source++;
}
return 0;
}
//3.
int maxx(int num[], int n);
int main()
{
int i;
int num[10];
for (i = 0; i < 10; i++)
scanf("%d", &num[i]);
i = maxx(num, sizeof num / sizeof num[0]);
printf("max=%d", i);
system("pause");
return 0;
}
int maxx(int num[], int n)
{
int i, max;
max = 0;
for (i = 0; i < n; i++)
{
if (max < num[i])
max = num[i];
}
return max;
}
//4.
int maxx(double num[], int n);
int main()
{
int i;
double num[10] = { 1.1,2.2,3.3,4.4,5.5,6.6,1.11,2.22,33.3,9.9 };
i = maxx(num, sizeof num / sizeof num[0]);
printf("i=%d", i);
system("pause");
return 0;
}
int maxx(double num[], int n)
{
int i,j,k;
for (i=0,j=0;i<n;i++)
{
if (j < num[i])
{
j = num[i];
k = i;
}
}
return k;
}
//5.
double cha(double num[], int n);
int main()
{
double i;
double num[10] = { 1.1,2.2,3.3,4.4,5.5,6.6,1.11,2.22,33.3,9.9 };
i = cha(num, sizeof num / sizeof num[0]);
printf("cha=%lf", i);
system("pause");
return 0;
}
double cha(double num[], int n)
{
int i;
double j=0, k=num[0], l;
for (i = 0; i < n; i++)
{
if (j < num[i])
j = num[i];
if (k > num[i])
k = num[i];
}
l = j - k;
return l;
}
//6.
void dao(double num[], int n);
int main()
{
double num[5] = { 1.1,2.2,3.3,4.4,5.5 };
dao(num, 5);
system("pause");
return 0;
}
void dao(double num[], int n)
{
double dnum[5];
int i,j;
for (i = 0, j = 4; i < n, j>=0; i++, j--)
dnum[j] = num[i];
for (i = 0; i < 5; i++)
printf("%lf ", dnum[i]);
return 0;
}
//7.
void copy(int target[], int source[], int n, int m);
int main()
{
int source[3][3]=
{
{1,2,3},
{4,5,6},
{7,8,9}
};
int target[3][3];
copy(target, source, 3, 3);
system("pause");
return 0;
}
void copy(int target[], int source[], int n, int m)
{
int(*p)[3];
int(*q)[3];
p = target;
q = source;
int i,j;
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
*(*(p + i) + j) = *(*(q + i) + j);
printf("%d ", *(*(p + i) + j));
}
if (j == m)
printf("\n");
}
}
//8.
void copy_3(double *p, double *q, int n);
int main()
{
double source[7] = { 1.1,2.2,3.3,4.4,5.5,6.6,7.7 };
double target[3];
double *p, *q;
p = target;
q = source;
copy_3(p, q, 3);
system("pause");
return 0;
}
void copy_3(double *p, double *q, int n)
{
for (; n > 0; n--)
{
*(p + n - 1) = *(q + 2 + n - 1);
printf("%lf ", *(p + n - 1));//这里倒序输出了
}
}
//9.
void copy(int num[][5],int num2[][5], int row);
void display(int num[][5], int row);
int main()
{
int source[3][5] = {
{1,2,3,4,5},
{6,7,8,9,10},
{11,12,13,14,15}
};
int target[3][5];
copy(target, source, 3);
display(source,3);
printf("\n");
display(target, 3);
system("pause");
return 0;
}
void copy(int num[][5], int num2[][5], int row)
{
int i, j;
for (i = 0; i < row; i++)
for (j = 0; j < 5; j++)
*(*(num + i) + j) = *(*(num2 + i) + j);
}
void display(int num[][5], int row)
{
int i, j;
for (i = 0; i < row; i++)
for (j = 0; j < 5; j++)
printf("%d ", num[i][j]);
}
//10.
void sumnum(int num[], int num1[], int num2[], int n);
int main()
{
int num[] = { 2,4,5,8 };
int num1[] = { 1,0,4,6 };
int num2[4];
sumnum(num, num1, num2, 4);
system("pause");
return 0;
}
void sumnum(int num[], int num1[], int num2[], int n)
{
int i;
for (i = 0; i < 4; i++)
{
*(num2 + i) = *(num + i) + *(num1 + i);
printf("%d ", *(num2 + i));
}
}
//11-12.
void fanbei(int target[][5], int source[][5], int n);
void display(int num[][5], int n);
int main()
{
int source[3][5] = {
{1,1,1,1,1},
{2,2,2,2,2},
{3,3,3,3,3}
};
int target[3][5];
fanbei(target, source, 3);
display(source, 3);
printf("\n");
display(target, 3);
system("pause");
return 0;
}
void fanbei(int target[][5], int source[][5], int n)
{
int i, j;
for (i = 0; i < n; i++)
for (j = 0; j < 5; j++)
*(*(target + i) + j) = *(*(source + i) + j) * 2;
}
void display(int num[][5], int n)
{
int i,j;
for (i = 0; i < n; i++)
for (j = 0; j < 5; j++)
printf("%d ", num[i][j]);
}
//13
void zupingjun(double num[][5], int row);
double allpingjun(double num[][5], int row);
double maxx(double num[][5], int row);
int main()
{
double num[3][5] = {
{1,1,1,1,1},
{2,2,2,2,2},
{3,3,3,3,3}
};
zupingjun(num, 3);
allpingjun(num, 3);
maxx(num, 3);
system("pause");
return 0;
}
void zupingjun(double num[][5], int row)
{
int i,j;
double k;
for (i = 0,k=0; i < row; i++,k=0)
{
for (j = 0; j < 5; j++)
k += num[i][j];
if (j == 5)
printf("zupingjun is %lf\n", k / 5);
}
}
double allpingjun(double num[][5], int row)
{
int i, j;
double k = 0;
for (i = 0; i < row; i++)
for (j = 0; j < 5; j++)
k += num[i][j];
printf("allpingjun is %lf\n", k / 15);
return k / 15;
}
double maxx(double num[][5], int row)
{
int i, j, k = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < 5; j++)
{
if (k < num[i][j])
k = num[i][j];
}
}
printf("max=%d", k);
return k;
}