我与C语言之第三战!

  我与C语言第三战之num1:将数组A中的内容和数组B中的内容进行交换。(数组一样大)

  首先定义两个数组用以存放元素,为了更直观的看到数组内容进行了交换,先将之前定义的两个数组内容分别打印出来,然后利用for循环和中间变量,进行两个数组间元素的交换,最后进行打印即可。具体程序代码和运行结果如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	int a[5] = {1,2,3,4,5};
	int b[5] = {6,7,8,9,10};
	int i, t;
	printf("数组a的元素为:\n");
	for (i = 0; i < 5; i++)
	{
		printf("%d ",a[i]);
	}
	printf("\n");
	printf("数组b的元素为:\n");
	for (i = 0; i < 5; i++)
	{
		printf("%d ",b[i]);
	}
	printf("\n");
	printf("交换后数组a和b的元素分别为:\n");
	for (i = 0; i < 5; i++)
	{
		t = a[i];
		a[i] = b[i];
		b[i] = t;
	}
	printf("数组a的元素为:\n");
	for (i = 0; i < 5; i++)
	{
		printf("%d ", a[i]);
	}
	printf("\n");
	printf("数组b的元素为:\n");
	for (i = 0; i < 5; i++)
	{
		printf("%d ", b[i]);
	}
	printf("\n");
    system("pause");
    return 0;
}

  我与C语言第三战之num2:计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。

  首先会想到用循环来完成,但并不是每个运算符都是“+”号,观察表达式,能得知它的正负顺序是一正一负一正一负……,将循环变量当作分母,再定义一个常量n,令n=-n,并将表达式放在循环中,就能保证值的正负。要注意的是:计算结果肯定是小数,所以定义变量sum时,不能用int,要用double。具体程序代码及运行结果如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	int m = 0;
	int n = 1;
	double sum = 0.0;
	for (m = 1; m < 101; m++)
	{
		sum += n*(1.0 / m);
		n = -n;
	}
	printf("sum is %f\n", sum);
	system("pause");
	return 0;
}

  我与C语言第三战之num3:编写程序数一下 1到 100 的所有整数中出现多少次数字9。

  首先考虑个位为9,怎么计算?取余即可,其次考虑十位为9,利用计算机除法运算的取整特性,即可求出十位有9的数字,值得注意的是,此题中99只计算了一次,所以对最后计算出来的9的个数要加1。具体程序代码及运行结果如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	int m = 0;
	int n = 0;
	printf("1到100中有9的数字分别为:\n");
	for (m = 1; m < 101; m++)
	{
		if (m % 10 == 9)
		{
			printf("%d ", m);
			n++;
		}
		else if (m/10==9)
		{
			printf("%d ", m);
			n++;
		}
	}
	n += 1;
	printf("\n1到100中9的个数为:%d\n", n);
    system("pause");
    return 0;
}

   个人感悟:拿到题目,对题目的理解不够深入,经过查看监视窗口,发现了代码的漏洞及不足,再接再厉!

猜你喜欢

转载自blog.csdn.net/weixin_43761659/article/details/84548435