程序:
一个关机程序:
程序说明:运行即120秒后关机,若输入‘wzr’则取消关机
shutdown -s (设置关机) -t 60 (设置时间关机 60秒钟)
shutdown -a 取消关机
system() 执行系统命令的
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char input[22];
system("shutdown -s -t 120");//stdlib.h
again:
printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!\n电脑即将在120秒后关机\n");
printf("如果输入:wzr 。 就取消关机\n请输入:");
scanf("%s",input);
if(strcmp(input,"wzr")==0) //比较两个字符串 strcmp(), string.h
{
system("shutdown -a");
}
else
{
goto again;//跳转到sgain
}
return 0;
}
运行结果👇👇
二分查找:
说明:二分查找:在一个有序数组中查找具体的某个数
程序说明:在一个有序数组(1~10)中查找具体的某个数,如果找到显示下标,如果没找到就显示没找到
sizeof()函数
是一个判断数据类型或者表达式长度的运算符,其作用就是返回一个对象或者类型所占的内存字节数
两种用法:
1. sizeof(type_name);//sizeof(类型);
2. sizeof object;//sizeof对象;
数组的sizeof值:等于数组所占用的内存字节数
求数组元素的个数通常有下面两种写法:
int c1=sizeof(a1)/sizeof(char); //总长度/单个元素的长度 (char型)
int c2=sizeof(a2)/sizeof(a2[0]); //总长度/第一个元素的长度 (int型)
#include<stdio.h>
#include<string.h>
// 本质上a是一个指针
int two_search(int a[],int i,int sz)
{
//函数内部想求参数部分的数组元素的个数——做不到。
//解决方法:在外面求好个数之后传进来
//二分查找算法:
int left=0;
int right=sz-1;
while(left<=right)
{
int mid=(right+left)/2;//中间元素的下标。
if(a[mid]<i)
{
left=mid+1;
}
else if(a[mid]>i)
{
right=mid-1;
}
else
return mid;
}
return -1;
}
int main()
{
//二分查找
//在一个有序数组中查找具体的某个数
//如果找到了返回这个数的下标,如果找不到返回-1
int a[]={1,2,3,4,5,6,7,8,9,10};
int i;
printf("请输入要查找的数:");
scanf("%d",&i);
//求出数组元素的个数
int sz=sizeof(a)/sizeof(a[0]);
// 传递过去的a是a[]的数组首元素地址!!
int j=two_search(a,i,sz);
if(j==-1)
printf("\n公子,实在是找不到该数字啊!!!\n");
else
printf("\n*****正在飞速寻找中~~~~~\n\n!!找到了!!该数字的下标:%d\n",j);
return 0;
}
运行结果👇👇
递归:
程序说明:利用递归 依次将输出的数,一个个输出(正序 / 逆序)
#include<stdio.h>
void pir(int num)
{
/*
if(num>0) //将数字逆序输出
{
printf("%d ",num%10);
pir(num/10); //递归
}
*/
if(num>9) //将数字正序输出
{
pir(num/10); //递归
}
printf("%d ",num%10);
}
int main()
{
int num;
printf("输入要拆分的数:");
scanf("%d",&num);
printf("\n公子,拆分之后的结果为: ");
pir(num);
printf("\n");
return 0;
}
运行结果👇👇
逆序输出👇👇