switch语句中case后的表达式只能是整形常量表达式
一、将三个数字从大到小排序
#include<stdio.h>
void Swap(int* px,int* py)
{
int tmp = *px;
*px = *py;
*py = tmp;
}
int main()
{
int a,b,c = 0;
int tmp = 0;
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",a,b,c);
return 0;
}
二、求两个数字的最大公约数
#include<stdio.h>
int main()
{
int a,b = 0;
int min = 0;
scanf("%d %d",&a,&b);
min = (a<b)?a:b;
while(1)
{
if(a % min == 0 && b % min == 0)
{
break;
}
min--;
}
printf("%d",min);
return 0;
}
辗转相除法:
#include<stdio.h>
int main()
{
int a,b = 0;
int c = 0;
scanf("%d %d",&a,&b);
while(c = a%b)
{
a = b;
b = c;
}
printf("%d",b);
return 0;
}
三、
#include<stdio.h>
int main()
{
double sum = 0;
int i = 0;
int n = 1;
for(i = 1;i<=100;i++)
{
sum = sum + n*(1.0/i);
n = -n;
}
printf("%lf",sum);
return 0;
}
四、找十个数里边的最大值
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int arr[10] = {0};
int i = 0;
int max = arr[0];
for(i = 0;i<10;i++)
{
scanf("%d",&arr[i]);
}
for(i = 1;i<10;i++)
{
if(max<arr[i])
{
max = arr[i];
}
}
printf("%d",max);
return 0;
}
五、九九乘法口诀表
#include <stdio.h>
int main()
{
int i, j = 0;
for (i = 1; i < 10; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d * %d = %2d ", i, j, i * j);
}
printf("\n");
}
return 0;
}
注意:1、%2d右对齐,%-2d左对齐,此处也可使用\t.