之前刚学c的时候练的一些题
一、反向输出一个四位数:
#include<stdio.h>
int main()
{
int a, b, c, d;
printf("输入一个四位数:\n");
scanf_s("%d", &a);
printf("%d", a % 10);
a /= 10;
printf("%d", a % 10);
a /= 10;
printf("%d", a % 10);
a /= 10;
printf("%d", a % 10);
return 0;
}
二、计算如下
#include<stdio.h>
float max(int x,int y,int z)
{
if (x <= z && y <= z)
{
return z;
}
else if (x <= y && z <= y)
{
return y;
}
else if (y <= x && z <= x)
{
return x;
}
}
int main()
{
int a, b, c;
float m;
scanf_s("%d,%d,%d",&a,&b,&c);
m = max(a + b, b, c) / (max(a, b + c, c) + max(a, b,b+c));
printf("Max=%f", m);
return 0;}
三、判断2000到2500之间的闰年:(能除以4但不能除以100,或能整除400)
#include<stdio.h>
int main()
{
int i = 2000;
for (i; i <= 2500; i++)
{
if (((i%4==0)&&(i%100!=0))||i%400==0)
{
printf("%d\n", i);
}
}
四、输出一个乘法表:
#include<stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%-2d\t", i, j, i * j);
}
printf("\n");
}
return 0;
}
五、判断100到200之间的素数:只能被1和自身整除
#include <stdio.h>
int main()
{
for (int i = 100; i <= 200; i++)
{
int j = 0;
for (j = 2; j < i; j++)
{
if(i%j==0)
{
break;
}
}if (i == j)
{
printf("%d\n", i);
}
}
return 0;
}
六、计算1!+2!+.....+5!
#include<stdio.h>
int main()
{
int i;
int ret = 1;
int sum = 0;
for (i = 1; i < 6; i++)
{
ret = ret * i;
sum = sum + ret;
}
printf("%d\n", sum);
return 0;
}
七、判断一个数是否是水仙花数:一个三位数,各位数字的三次方等于本身
#include<stdio.h>
int main()
{
int i, j,k,z;
for (i = 100; i < 1000; i++)
{
j = i / 100;
k = i %100/10;
z = i % 10;
if (j * j * j + k * k * k + z * z * z == i)
printf("水仙花数为:%d\n", i);
}
return 0;
}
八、在一组无序的数组中查找某个具体的数n
#include<stdio.h>
int main()
{
int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
int i = 7;
int j;
int z = sizeof(arr) / sizeof arr[0];
for (j = 0; j < z; j++)
{
if (i == arr[j])
{
printf("找到了,其下表为:%d", i);
break;
}
}if (j == z)
printf("不存在\n");
return 0;
}
九、折半算法(二分法)
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10,11 };
int k = 8;
int sz = sizeof(arr) / sizeof(arr[0]);
int left = 0; //建立左下标
int right = sz; //建立右下标
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] < k)
{
left = mid + 1;
}
else if (arr[mid] > k)
{
right = mid - 1;
}
else {
printf("找到了,下标为:%d\n", mid);
break;
}
}if (left > right)
printf("不存在\n");
return 0;
}

132

被折叠的 条评论
为什么被折叠?



