【二分查找】
#include<stdio.h>
int main()
{
//二分查找
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int k = 7;
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",mid);
break;
}
}
return 0;
}
不难,及时复盘
【字符串逐渐向中间汇集!】
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
int main()
{
char arr1[] = "welcome to bit!!!!";
char arr2[] = "###################";
int left = 0;
int right = strlen(arr2)-1;
while(left <= right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n",arr2);
Sleep(500);
// 清空屏幕,system是一个库函数,可以执行系统命令。
system("cls");
left++;
right--;
}
printf("%s\n",arr2);
return 0;
}
【模拟用户登录情景,并且只能登录3次,登录成功和输入错误均有提示!】
#include<stdio.h>
#include<string.h>
int main()
{
char password[50] = {0};
int i = 0;
for(i=0; i<3; i++)
{
printf("请输入密码:>");
scanf("%s",password);
if(strcmp(password,"asdfg") == 0) //比较两个字符串,不能直接使用==,而是该使用一个库函数:strcmp
{ //如果返回0,表示两个字符串相等
printf("登录成功!\n");
break;
}
else
{
printf("密码错误\n");
}
}
if(i == 3)
{
printf("登录失败!");
}
return 0;
}
【结构体和指针】
#include<stdio.h>
struct stu {
char name[20];
int age;
char sex[12];
char phone[20];
};
void print (struct stu* p)
{
printf("%s %d %s %s\n",p->name, p->age, p->sex, p->phone);
printf("%s %d %s %s\n",(*p).name, (*p).age, (*p).sex, (*p).phone);
}
int main()
{
struct stu c = {"fenggg",25,"male","17345717721"};
// printf("%s , %d , %s , %s", c.name, c.age, c.sex , c.phone);
print(&c);
return 0;
}

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



