1月26日 C Primer Plus学习
当天主要是巩固一下,没有学习新的内容
编程练习第6题
代码
点击查看
#include<stdio.h>
void sort(double num[], int i);
void main(void)
{
double num[10] ={3.6, 5.7, 8.3, 2.9, 6.4, 7.3, 8.2, 9.1, 4.5, 1.8};//声明数组
for (int i = 0; i < 10; i++)
{
printf("%.1lf ",num[i]);//输出排序前的数组
}
printf("\n");
sort(num, 10);
for (int i = 0; i < 10; i++)
{
printf("%.1lf ",num[i]);//输出倒序排列后的数组
}
return;
}
void sort(double num[], int i)//排序
{
double cache;
for (int j = 0; j < i - 1; j++)
{
for (int k = 0; k < i - 1 - j; k++)//k < i
{
if (num[k] < num[k+1])
{
cache = num[k];
num[k] = num[k+1];
num[k+1] = cache;
}
}
}
}
运行结果

编程练习第7题
代码
点击查看
#include<stdio.h>
void copy_arr(double t[], double s[], int n);//题目要求使用练习2中的拷贝函数
void copy_ptr(double *t, double *s, int n);
void copy_ptrs(double *t, double *s_first, double *s_last);
void copy_2d_arr(double t[][12], double s[][12], int n);
void copy_2d_ptr(double (*t)[12], double (*s)[12], int n);
void main(void)
{
double target[5][12],source[5][12] =
{
{4.3, 4.3, 5.3, 7.4, 3.5, 5.1, 2.4, 5.3, 4.7, 5.3, 4.6, 4.4},
{3.6, 5.7, 8.3, 2.9, 6.4, 7.3, 8.2, 9.1, 4.5, 1.8, 5.4, 6.2},
{5.6, 4.6, 8.9, 8.9, 7.8, 9.4, 6.5, 1.5, 6.8, 9.7, 9.4, 7.6},
{8.9, 5.4, 6.8, 4.5, 2.1, 6.5, 4.8, 9.6, 4.1, 9.8, 9.6, 5.4},
{6.8, 5.2, 1.8, 6.9, 5.6, 5.1, 1.4, 8.8, 5.4, 4.8, 4.5, 6.1},
};//声明数组
copy_2d_ptr(target, source, 5);//拷贝
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 12; j++)
printf("%5.2f",target[i][j]);
printf("\n");
}
return;
}
void copy_arr(double t[], double s[], int n)
{
for (int i = 0; i < n; i++)
t[i] = s[i];
}
void copy_ptr(double *t, double *s, int n)
{
for (int i = 0; i < n; i++)
*(t+i) = *(s+i);
}
void copy_ptrs(double *t, double *s_first, double *s_last)
{
for (int i = 0; (s_last - s_first) > i; i++)
*(t+i) = *(s_first+i);
}
void copy_2d_arr(double t[][12], double s[][12], int n)
{
for (int i = 0; i < n; i++)
copy_arr(t[i], s[i], 12);
}
void copy_2d_ptr(double (*t)[12], double (*s)[12], int n)
{
for (int i = 0; i < n; i++)
copy_ptr(*(t+i), *(s+i), 12);
}
运行结果

浙公网安备 33010602011771号