1.计算n的阶层
int main()
{
int a = 0;
int i = 0;
int ret = 1;
scanf("%d", &a);
for (i = 1; i <= a; i++)
{
ret *= i;//ret=ret*i
}
printf("%d\n",ret);
return 0;
}
2.计算1!+2!+…+10!
int main()
{
int a = 0;
int b = 0;
int ret = 1;
int he = 0;
for (b = 1; b <= 10; b++)
{ ret = 1;
for (a = 1; a <= b; a++)
{ret *= a;}
he += ret;
}
printf("%d", he);
return 0;
}
int main()
{
int a = 0;
int ret = 1;
int he = 0;
for (a = 1; a <= 10; a++)
{
ret = ret * a;
he += ret;
}
printf("%d", he);
}
3.在一个有序数组中寻找某个数。
//1到10中寻找7
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int k = 7;//要查找的数,在arr中查找
int sz = sizeof(arr) / sizeof(arr[0]);//数组元素个数
int left = 0;
int right = sz - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] < k)
{
left = left + 1;
}
else if (arr[mid] > k)
{
right = right - 1;
}
else
{
printf("找到了,下标为:%d\n", mid);
break;
}
}
if (left > right)
{
printf("找不到了\n");
}
return 0;
}
4.//编写代码,演示多个字符从两端移动,向中间汇聚。
#include<stdio.h>
#include<windows.h>
int main()
{
char arr1[] = "welcome to bit!!";
char arr2[] = "################";
int left = 0;
int right = strlen(arr1) - 1;
//int sz = sizeof(arr1) / sizeof(arr1[0]);
//int right = sz - 2;
printf("%s\n", arr2);
while (left <= right)
{
Sleep(1000);//睡眠1000毫秒=1秒
system("cls");//清空屏幕
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
left++; right--;
}
return 0;
}
5.//猜数字
#include<stdlib.h>//rand的头文件
#include<time.h>
void menu()
{
printf("**********\n");
printf("**1.play**\n");
printf("**0.exit**\n");
}
void game()
{
//猜数字游戏的实现
//1.生成随机数(rand函数返回0-32767之间的数字
int ret = rand()%100+1;//%100的余数是0-99,然后+1,范围就是1-100
//2.猜数字
int guess = 0;
while (1)
{
printf("请猜数字:>");
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了\n");
}
else if (guess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择:>");
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,重新选择\n");
}
} while (input);
return 0;
}
6.a,b,c按照从大到小打印
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d %d", &a, &b, &c);
if (a < b)
{
int t = a;
a = b;
b = t;
}
if (a < c)
{
int t = a;
a = c;
c = t;
}
if (b < c)
{
int t = b;
b = c;
c = t;
}
printf("%d %d %d", a, b, c);
return 0;
}
7.最大公约数[第一种方法]
int main()
{
int m = 0;
int n = 0;
scanf("%d %d", &m, &n);
int max = 0;
if (m > n){max = m;}
else { max = n; }
while (1)
{
if (m % max == 0 && n % max == 0)
{
printf("最大公约数:%d\n", max);
break;
}
max--;
}
return 0;
}
//第二种[辗转相除法]
int main()
{
int m = 0;
int n = 0;
int min = 0;
int zuixiao = 0;
min = n * m;
scanf("%d %d", &m, &n);
int t = 0;
while (m % n)
{
t = m % n;
m = n;
n = t;
}
printf("最大公约数:%d\n", n);
}
8.//100-200之间的素数
int main()
{
int i = 0;
int count = 0;
for (i = 100; i < 200; i++)
{//判断是否是素数,2->i-1之间的数字去试除i;看能不能整除
int j = 0;
int flag = 1;//假设i是素数
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
{
count++;
printf("%d ", i);
}
}
printf("\n一共有%d个素数", count);
}
#include<math.h>//sqrt的头文件
int main()
{//sqrt是开平方函数—math.h
int i = 0;
int count = 0;
for (i = 100; i < 200; i++)
{//i=a*b。a和b中至少有一个数字<=开平方i的
//16=4*4=2*8
int j = 0;
int flag = 1;
for (j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
{
count++;
printf("%d ", i);
}
}
printf("\n一共有%d个素数",count);
return 0;
}
355

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



