c语言12345的和for循环,C语言的for循环以及一些练习

转载来自51cto:https://blog.51cto.com/15080720/2598265

如何用for循环打印1到10的数字,代码如下:

int main()

{

int i = 0;

初始化 判断 调整

for ( i = 1; i <= 10; i++)

{

if (i == 5)

continue;

printf("%d\n", i);

}

return 0;

}

for循环是我们使用最多的循环,所以要掌握一些基本的使用方法

如何计算 n的阶乘,代码如下:

int main()

{

int n = 0;

int i = 0;

int ret = 1;

scanf("%d", &n);

for (i = 1; i <= n ; i++)

{

ret = ret * i;

}

printf("ret = %d\n", ret);

return 0;

}

求10以内阶乘的和,代码如下:

int main()

{

int n = 0;

int i = 0;

int ret = 1;

int sum = 0;

for (n = 1; n <= 10; n++)

{

ret = 1;

for (i = 1; i <= n; i++)

{

ret = ret * i;

}

sum = sum + ret;

}

printf("sum = %d\n", sum);

return 0;

}

当然我们也可以用另外一种更简洁的方法:

int main()

{

int n = 0;

int ret = 1;

int sum = 0;

for (n = 1; n <= 10; n++)

{

ret = ret * n;

sum = sum + ret;

}

//ret = 1*1=1

//ret = 1*1*2=2

//ret = 1*1*2*3=6

printf("sum = %d\n", sum);

return 0;

}

如何用代码实现二分查找法:

int main()

{

int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10 };

int k = 17;

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)

{

right = mid - 1;

}

else if (arr[mid] < k)

{

left = mid + 1;

}

else

{

printf("找到了\n", mid);

break;

}

if (left > right)

{

printf("找不到\n");

}

}

return 0;

}

如何编写代码,演示多个字符从两端移动,向中间汇聚:

int main()

{

//welcome to china!!!

//###################

//w#################!

//we###############!!

//...

//welcome to china!!!

//

//char arr[] = "abc";

//[a,b,c,\0]

// 0 1 2 3

//c是4-2

char arr1[] = "welcome to china!!!";

char arr2[] = "###################";

int left = 0;

//int right = sizeof(arr1) / sizeof(arr1[0]) - 2;//err

int right = strlen(arr1) - 1;

while (left<=right)

{

arr2[left] = arr1[left];

arr2[right] = arr1[right];

printf("%s\n", arr2);

//休息一秒

Sleep(1000);

system("cls");//执行系统命令的一个函数 cls - 清空屏幕

left++;

right--;

}

printf("%s\n", arr2);

return 0;

}

编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序:

int main()

{

int i = 0;

char pd[20] = { 0 };

for ( i = 0; i < 3; i++)

{

printf("请输入密码:>");

scanf("%s", pd);

if (strcmp(pd ,"123456") == 0)// == 不能用来比较两个字符串是否相等,应该使用一个库函数strcmp

{

printf("登录成功\n");

break;

}

else

{

printf("密码错误\n");

}

}

if (i == 3)

printf("三次密码均错误,退出程序");

return 0;

}

可以从上面的练习中,我们能知道for循环的一些使用,以及语法的一些格式。

2021.1.19

加油,明天继续努力

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值