1.switch语句中如果case后不加break,则会继续执行
2.char存放的是字符的ASCII码值,是整型类型
3.依次从大到小输出3个数
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d%d%d",&a,&b,&c);
//如果%d%d%d中间加其他符号,则在输入时必须加相同的符号
if(a<b)
{
int tmp = a;//防止a中数据丢失
a = b;
b = tmp;
}
if(a<c)
{
int tmp = a;
a = c;
c = tmp;
}
if(b<c)
{
int tmp = b;
b = c;
c = tmp;
}
printf("%d %d %d",a,b,c);
return 0;
}
4.求两个数的最大公约数
此处应用辗转相除法
#include<stdio.h>
int main()
{
int m = 0;
int n = 0;
scanf("%d%d",&m,&n);
while(m%n != 0)
{
int r = m%n;
m = n;
n = r;
}
printf("%d\n",n);
return 0;
}
5.打印1000年~2000年之间的闰年
#include<stdio.h>
int main()
{
int year = 0;
int count = 0;
for(year=1000;year<=2000;year++)
{
if(year%4 == 0 && year%100 != 0)
{
printf("%d ",year);
count++;
}
else if(year%400 == 0)
{
printf("%d ",year);
count++;
}
}
printf("\n%d\n",count);
return 0;
}
简化:
#include<stdio.h>
int main()
{
int year = 0;
int count = 0;
for(year=1000;year<=2000;year++)
{
if(((year%4 == 0) && (year%100 != 0)) || (year%400 == 0))//||或
{
printf("%d ",year);
count++;
}
}
printf("\n%d\n",count);
return 0;
}
6.打印100~200之间的素数
优化:只需要试除到i的开二次根号即可,只需试除奇数即可
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
int count = 0;
for(i=101;i<=200;i+=2)
{
int j = 0;
for(j=2;j<=sqrt(i);j++)//sqrt-开平方的数学库函数,需要引头文件math.h
{
if(i%j == 0)
{
break;
}
}
if(j>sqrt(i))
{
printf("%d ",i);
count++;
}
}
printf("\n%d\n",count);
return 0;
}
7.数1~100间9的个数
个位数为9,除10余9,十位数为9,除10商9
#include<stdio.h>
int main()
{
int i = 0;
int count = 0;
for(i=1;i<=100;i++)
{
if(i%10 == 9)
count++;
if(i/10 == 9)//不加else,如果加else99只会算一次,而99中有2个9
count++;
}
printf("%d\n",count);
return 0;
}
8.计算1/1-1/2+1/3-1/4+······1/99-1/100
#include<stdio.h>
int main()
{
int i = 0;
double sum = 0.0;
int flag = 1;
for(i=1;i<=100;i++)
{
sum += flag*1.0/i;
flag = -flag;
}
printf("%lf",sum);
return 0;
}
9.求10个数中的最大值
#include<stdio.h>
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int max = arr[0];//使max是arr中的元素
int i = 0;
int sz = sizeof(arr)/sizeof(arr[0]);
for(i=0;i<10;i++)
{
if(max<arr[i])
{
max = arr[i];
}
}
printf("max = %d\n",max);
return 0;
}
10.打印乘法口诀表
#include<stdio.h>
int main()
{
int i = 0;
//确定打印9行
for(i=0;i<=9;i++)
{
//打印一行
int j = 1;
for(j=1;j<=i;j++)
{
printf("%d*%d = %-2d ",i,j,i*j);
//%-2d打印两位,左对齐,如果不足两位,后面用空格补齐
//%2d打印两位,右对齐,如果不足两位,前面用空格补齐
}
printf("\n");
}
return 0;
}