跟着鹏哥学编程,拿一个好offer!
今天的任务是把练习题好好写一写,编程就是要多动手做。
计算n的阶乘。
(1)for循环
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
int i ;
int fact = 1;
for (i = 1; i <= n ; i++)
{
fact *= i;//fact = fact * i;
}
printf("num!=%d\n",fact);
}
(2)while循环
#include<stdio.h>
int main()
{
//while循环求n!
int num;
scanf("%d",&num);
int i = 1;
int fact = 1;
while (i<=num)
{
fact *= i;
i++;
}
printf("fact = %d。\n",fact);
return 0;
}
计算1!+2!+3!+...+9!+10!。
#include <stdio.h>
int main()
{
int i = 0;
int sum = 0;
int num = 0;
int fact = 1;
for (num = 1; num <= 10; num++)
{
fact = 1;
for (i = 1; i <= num; i++)
{
fact *= i;//fact = fact * i;
}
sum = sum + fact;
}
printf("sum=%d\n",sum);
return 0;
}
折半查找法的简单实现
在一个有序的数组中查找指定数字,用二分法实现该要求。
#include <stdio.h>
int main()
{
//1 2 3 4 5 6 7 8 9 10
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int k = 2;
int sz = sizeof(arr) / sizeof(arr[0]); //求元素个数
int left = 0;//坐下标
int right = sz - 1;//右下标
while (left<=right)
{
int middle = (left + right) / 2;//中间元素的下标
if (arr[middle] > k)
{
right = middle - 1;
}
else if (arr[middle] < k)
{
left = middle + 1;
}
else
{
printf("找到了,下标是%d。\n", middle);
break;
}
if (left > right)
{
printf("没找到。\n"); break;
}
}
return 0;
}
编写代码,演示多个字符从两端移动,向中间汇聚。
#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include <stdlib.h>
int main()
{
char arr1[] = "Welcome to China!!!!";
char arr2[] = "####################";
int left = 0;
int i = 0;
int right = strlen(arr1) - 1;
while (left<=right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
left++;
right--;
printf(" %s\n", arr2);
Sleep(1000);//延时1000ms,调用该函数需要引用Windows.h头文件
system("CLS");//调用system()函数需要引用stdlib.h头文件,CLS意思是清屏
}
printf(" %s\n", arr2);
return 0;
}
5.编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。)
#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include <stdlib.h>
int main()
{
char password[] = "123456";
char arr[20];
int i = 0;
/*printf("请输入密码:");
scanf("%s",arr);*/
for (i = 0; i < 3; i++)
{
printf("请输入密码:");
scanf("%s", arr);
if (strcmp("123456", arr) == 0)
{
printf("登陆成功!\n"); break;
}
else
{
printf("密码输入错误,请检查输入是否正确!\n");
//system("cls");
}
}
if (i >= 3)
{
Sleep(1000);
system("cls");
printf("退出程序!\n");
return 0;
}
}