3_09
1打印100~200之间的素数
2输出乘法口诀表
3判断1000年—2000年之间的闰年
No.1
打印100~200之间的素数。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
//试除法
int main()
{
int i, j, t;
//int count = 0;
for (i = 100; i <= 200; i++)
{
t = sqrt(i);
for (j = 2; j <= t; j++)
{
if (i%j == 0)
{
break;
}
}
if (j > t)
printf("%d\n", i);
}
//if (i == j)
//{
// count++;
//}
//printf("%d\n", count);
system("pause");
return 0;
}
No.2
输出乘法口诀表。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 1;
int j=1;
for (i = 1; i <= 9; i++)
{
for (j = 1; j < 10; j++) //比人家多算了几步,这里中间要是改成 j<i
{
if(i>=j) //这里就不用写这一判断句了
printf("%d × %d = %2d ",j,i,i*j); //%2d表示打印出来向右对齐两位
}
printf("\n");
}
system("pause");
return 0;
}
No.3
判断1000年—2000年之间的闰年。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j=0;
for (i = 1000; i <= 2000; i++)
{
if ((i % 4 == 0 && i % 100 != 0)|| i % 400 == 0)
{
printf("%d\t",i);
j++;
if (j > 4) //实现输出5个一换行输出
{
printf("\n");
j = 0;
}
}
}
system("pause");
return 0;
}
3_15
1 给定两个整形变量的值,将两个值的内容进行交换。
2 不允许创建临时变量,交换两个数的内容(附加题)
3 .求10 个整数中最大值。
4将三个数按从大到小输出。
5求两个数的最大公约数。
No.1
给定两个整形变量的值,将两个值的内容进行交换。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, j, temp; //使用了中间变量temp
scanf("%d,%d",&i,&j);
printf("%d,%d",i,j);
temp = i;
i = j;
j = temp;
printf("\n");
printf("%d,%d", i, j);
system("pause");
return 0;
}
No.2
不允许创建临时变量,交换两个数的内容(附加题)。
#include<stdio.h>
#include<stdlib.h>
//int main()
//{
// int i, j;
// scanf("%d,%d",&i,&j);
// printf("%d,%d\n", i, j); //相加后减去另一个数
// printf("%d,%d", i + j - i,i);
// system("pause");
// return 0;
//}
int main()
{ //按位异或方法
int a, b;
scanf("%d,%d",&a,&b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("%d,%d",a,b);
system("pause");
return 0;
}
No.3
求10 个整数中最大值。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,max,arr[10];
printf("Please input 10 numbers :\n");
for (i = 0;i < 10; i++)
{
scanf("%d",&arr[i]);
}
max = arr[0]; //把数组第一个元素赋值给变量max
for ( i= 0; i < 10;i++)
{
if (arr[i+1] > arr[i]) //如果第二个数大于第一个数
{
max=arr[i+1]; //则把第二个数赋给max
}
}
printf("%d\n",max);
system("pause");
return 0;
}
No.4
将三个数按从大到小输出。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b, c,t;
scanf("%d,%d,%d",&a,&b,&c);
if (a < b) //比较三个数大小用中间变量作为辅助
{
t = a;
a = b;
b = t;
}
if (a < c)
{
t = a;
a = c;
c = t;
}
if (b < c)
{
t = b;
b = c;
c = t;
}
printf("%d>%d>%d\n",a,b,c);
system("pause");
return 0;
}
No.5
求两个数的最大公约数。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{ //辗转相除法:取两个数中较大的数做除数,较小的数做被除数,用最大的数除较小数,
//如果余数为0,则较小数为这两个数的最大公约数,如果余数不为0,
//用较小数除上一步计算出的余数,直到余数为0,则这两个数的最大公约数为上一步的余数
int a, b, t;
scanf("%d,%d",&a,&b);
//if (a < b)
//{
// t = b;
// b = a;
// a = t;
//}
while(a%b != 0) //举例:16和10
{
t = a % b;
a = b;
b = t;
}
printf("GCD:%d\n",b);
system("pause");
return 0;
}