- 打印素数
- 九九乘法表
- 1000年到2019年之间的闰年
- 输入三个数字,按从大到小排列
- 计算从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
总结:在编程的过程中,要多想想是否有其他的算法,找出其中最优
的解法。总的来说还是得多敲代码,继续努力。