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);
}
运行结果

posted @ 2022-02-07 11:11  shucharjer  阅读(30)  评论(0)    收藏  举报