1.n阶乘
2.二分法
3.显示字符串
4.密码验证
5.猜数字
———————————————————————————————————
n! = n*(n-1)(n-2) * … *1;
sum=1!+2!+…+n!;
实现:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int factor(int num){
int ret=1;
for(int i=0;i<n;i++){
ret=ret*i;
}
return ret;
}
int main(){
int n=0;
int sum=0;
printf("请输入一个整数\n");
scanf("%d",&n);
for (int i = 1; i <= n;i++) {
int factor = 1;//乘积
printf("%d的阶乘为:%d\n",i,factor(i));
sum=sum+factor(i);
}
printf("前n阶阶乘和为:%d\n",sum);
system("pause");
return 0;
}
二分法:在有序数组中实现快速查找的方法;
int s[]={1,2,3,4,5,6 } 查找数num=2
方法:首先设置两个变量,left和right表示第一个和最后一个数组元素下标;计算中间元素下标mid=(left+right)+1;比较num和s[mid],如果数num在s[mid]左侧则right值变为mid-1;反之在右侧更新left为mid+1;继续比较,直到s[mid]==num;返回下标mid。
实现:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
//将二分法封装成一个函数
int main(){
int arr[]={
1,2,3,4,5,6};
int num=0;
int left =0;
int right=5;//最后一个元素下标
while(num){
int mid =(left+right)+1;
if(num<arr[mid]){
right=mid-1;
}
else if(num>arr[mid]){
left=mid-1;
}
else{
printf("找到了,%d在数组中的下标为:%d\n",num,mid);
break;
}
}
if(left>right){
printf("没找到!\n");
}
system("pause");
return 0;
}
演示多个字符(字符串“welcome to C!”),从两边移动并显示,向中间汇集。
实现:
#include //包含打印输出函数
#include //包含system库函数
#include //包含strlen函数,计算字符串长度
#include //包含Sleep库函数
int main(){
char str1[]="welcome to C!";
char str2[]="#############";
int left=0;
int right =strlen(str1)-1;
while(left<=right){
str2[left]=str1[left];
str2[right]=str1[right];
left++;
right--;
printf("%s\n",str2);
//Sleep(500); 延迟时间
//system("cls"); 清屏操作
}
system("pause");//请按任意键继续!
return 0;
}
模拟用户登录,验证密码,允许用户 登录三次,若密码正确则显示登陆成功,错误则显示您已错误3次,退出登录!
实现:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int main(){
char password[1024]={
0};
printf("请输入登录密码:");
scanf("%s",password);//scanf输入字符串时不用加地址符&,输入整数时必须加&
int i = 0;
for(;i<3;i++){
if(strcmp(password ,1234)==0){
printf("登陆成功\n");
break;
}else{
printf("密码错误\n");
}
}
if(i>=3){
printf("您已错误3次,退出登录!\n");
}
system("pause");
return 0;
}
实现:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
void menu(){
printf("****************************\n");
printf("*** 1.play guess game!\n ***\n");
printf("*** 2.exit! ****************\n");
printf("****************************\n");
printf("请选择功能:");
}
void guessGame(){
int input=0;
int random_num = rand()%100+1;
while(1){
printf("请输入你猜测的数字:\n");
scanf("%d",&input);
if(input<random_num){
printf("猜小了!\n");
}else if(input>random_num){
printf("猜大了!\n");
}else{
printf("猜对了!\n");
break;
}
}
}
int main(){
int select=0;
menu();
printf("请选择功能:");
scanf("%d",&select);
while(1){
switch(select){
case 1: guessGame();
break;
case 0: printf("exit!\n");
system("cls");
break;
}
break;
}
system("pause");
return 0;
}