【C】学习的第四天,代码优化。

  1. 打印素数
  2. 九九乘法表
  3. 1000年到2019年之间的闰年
  4. 输入三个数字,按从大到小排列
  5. 计算从1到100之间有多少个9
    1
    (第一种)减半
#include <stdio.h>
#include <stdlib.h>

void main()
{
	int i, j;
	printf("100到200之间的素数有\n");
	for (i = 100; i <= 200; i++)
	{
		for (j = 2; j <= i/2; j++)
			if (i%j == 0)
				break;
		if (j >i/2)
			printf("%d\n", i);
	}
	system("pause");
}

(第二种)

#include <stdio.h>
#include <stdlib.h>

void main()
{
	int i, j;
	printf("100到200之间的素数有\n");
	for (i = 100; i <= 200; i++)
	{
		for (j = 2; j <= sqrt(i); j++)
			if (i%j == 0)
				break;
		if (j >=i/2)
			printf("%d\n", i);
	}
	system("pause");
}

2
优化了九九乘法表的输出格式

#include <stdio.h>
#include <stdlib.h>

void main()
{
	int i, j, num;
	for (i = 1; i <= 9; i++)
		for (j = 1; j <= i; j++)
		{  
			num = i * j;
			printf("%d*%d=%2d\t", i, j, i*j);
			if (i ==j )
			{
				printf("\n");
			}
		}
	system("pause");

}

3
上一个代码忽略了被一百整除的情况

#include <stdio.h>
#include <stdlib.h>


void main()
{
	int i;
	printf("1000年到2000年间的闰年有\n");
		for (i = 1000; i <= 2000; i++)
		{
			if (i % 4 == 0&& i%100!=0  || i % 400 == 0)
				printf("%d\n", i);
		}
		system("pause");
}

4优化了使用函数的方式实现交换

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>

void swap(int* a, int*b)
{
	int temp = 0;
	temp = *a;
	*a = *b;
	*b = temp;
}
int main()
{
	int a = 0, b = 0, c = 0, i = 0;
	printf("请输入三个数");
	scanf("%d %d %d", &a, &b, &c);
	if (a < b)
	{
		swap (&a, &b);
	}
	if (a < c)
	{
		swap (&a, &c);
	}
	if (b < c)
	{
		swap (&b, &c);
	}
	printf("这三个数从大到小排列是%d>%d>%d\n", a, b, c);

	system("pause");
}

5
上一次的代码忽略了90~99中十位上的9

#include <stdio.h>
#include<stdlib.h>

int main()
{
	int i = 0, j = 0;
	for (i = 1; i < 101; ++i)
	{
		if (i % 10 == 9||i/10==9)
		{
			if (i % 10 == 9 && i / 10 == 9)
			{
				j += 2;
			}
			else
			{ 
				j += 1; 
			}
		}
	}
	printf("1到100共出现%d次9\n", j);
	system("pause");
}

6
总结:在编程的过程中,要多想想是否有其他的算法,找出其中最优
的解法。总的来说还是得多敲代码,继续努力。

猜你喜欢

转载自blog.csdn.net/qq_38606740/article/details/88652322