分支语句和循环语句小练习

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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值