No.14 代码练习

学习不易,不要坚持

  1. 将数组A中的内容和数组B中的内容进行交换。(数组一样大)
  2. 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
  3. 编写程序数一下 1到 100 的所有整数中出现多少次数字9。
1.
//交换两个数组的值
//解题思路:定义一个新的临时变量temp,将两个数组的每个值借助临时变量来交换。打印时可以写个打印函数,这样会使主函数的条理更清晰。
#include <stdio.h>

void Exchange_arr(int arr1[], int arr2[], int sz1, int sz2)
{
	int i = 0 ;
	int j = 0 ;

	while((i < sz1) &&(j < sz2))
	{
		int temp = arr1[i] ;
		arr1[i] = arr2[j] ;
		arr2[j] = temp ;
		i++ ;
		j++ ;
	}

}

void Print(int arr1[], int arr2[], int sz1, int sz2)
{
	int i = 0 ;
	int j = 0 ;

	for(i=0; i<sz1; i++)
	{
		printf("%3d ", arr1[i]) ;
	}
	printf("\n") ;

	for(j=0; j<sz2; j++)
	{
		printf("%3d ", arr2[j]) ;
	}
	
	printf("\n") ;
}

int main()
{
	int arr1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} ;
	int arr2[] = {11, 12, 13, 14, 15, 16, 17, 18, 19, 20} ;
	int size1 = sizeof(arr1) / sizeof(arr1[0]) ;
	int size2 = sizeof(arr2) / sizeof(arr2[0]) ;
	printf("转换之前两个数组分别为:\n") ;
	Print(arr1, arr2, size1, size2) ;
	Exchange_arr(arr1, arr2, size1, size2) ;
	printf("转换之后两个数组分别为:\n") ;
	Print(arr1, arr2, size1, size2) ;
	return 0 ;
}

运行结果:
在这里插入图片描述

2.
//计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
//解题思路:在Count()函数里使用while循环对其累加,设个标志为flag,每次循环时都会取其相反数。具体实现见代码
#include <stdio.h>

double Count()
{
	double flag = 1 ;
	double i = 1 ;
	double sum = 0 ;

	while(i <=100)
	{
		sum += flag *(1 / i) ;
		flag = - flag ;
		i++ ;
	}

	return sum ;
}
int main()
{
	double ret = 0 ; //用来存放计算好的值
	Count() ;
	ret = Count() ;
	printf("1 - 1/2 + 1/3 - 1/4 +...+ 1/99 - 1/100 = %lf\n", ret) ;
	return 0 ;
}

运行结果:
在这里插入图片描述

3.
//编写程序数一下 1到 100 的所有整数中出现多少次数字9。
#include <stdio.h>

int Count()
{
	int i = 1 ;
	int count = 0 ;

	for(i=1; i<=100; i++)
	{

		if(9 == i % 10)
		{
			count++;
		}

		if(9 == i / 10)
		{
			count++;
		}

	}
	return count ;
}

int main()
{
	int count = 0 ; //用来计数
	Count() ;
	count = Count() ;
	printf("1~100之间一共有 %d 个'9'\n", count) ;
	return 0 ;
}

运行结果:
在这里插入图片描述

学习不易,需要坚持

猜你喜欢

转载自blog.csdn.net/studyhardi/article/details/83721834