C语言qsort排序函数,关机程序,CMD操作和冒泡排序详解
冒泡排序
qsort排序函数
关机程序
cmd命令提示符
冒泡排序
冒泡排序也叫升序排序法,如何将一个无序的数列变得有序,就可以使用冒泡排序。经过一趟冒泡排序后,最大值在数列的末尾。
在我们继续向下进行数据交换时,我们会发现这样一个规律:
10个元素,在进行数据比较时,要比较9次,此时最大值来到末尾,剩余比较元素9个
9个元素,在进行数据比较时,要比较8次,此时次大值来到末尾,剩余比较元素8个
依次类推..........
代码:
数字排序:
void bubble_sort(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz - 1; i++)//排序趟数
{
int j = 0;
for (j = 0; j < sz-1-i; j++)
{
if (arr[j] > arr[j + 1])
{
int tmp = 0;
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main()
{
int arr[10] = { 9,8,7,6,5,4,3,2,1,0 };
int sz = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, sz);
for (int i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
结果:
字符排序
void bubble_sort(char arr[], int sz)
{
int i = 0;
for (i = 0; i < sz - 1; i++)
{
int j = 0;
for (j = 0; j < sz - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
char t = 0;
t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
}
}
}
int main()
{
char arr[10] = { 'i','i','l','n','b','d','f','a','z','s' };
int sz = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, sz);
for (int i = 0; i < sz; i++)
{
printf("%c ", arr[i]);
}
return 0;
}
结果:
qsort排序函数
qsort排序函数是可以直接对无序数列进行排序的函数,对无序数列进行快速排序
排序函数结构:
指针函数返回值:
举例:利用qsort排序函数,对序列2 3 1 4 6 5 7 8 9 0进行排序
代码:
int compare_int(const void* e1, const void* e2)
{
return *(int*)e1 - *(int*)e2;//升序
//return *(int*)e2 - *(int*)e1;//降序
}
int main()
{
int arr[10] = { 2, 3 ,1, 4, 6, 5, 7, 8, 9, 0 };
int sz = sizeof(arr) / sizeof(arr[0]);
qsort(arr, 10, 4, compare_int);
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
cmd命令提示符
什么是CMD?
在不同操作系统环境下,命令提示符各不相同,在Windows环境下,命令程序为cmd.exe,是一个32位的命令行程序。cmd是command的缩写,即命令行。
cmd的具体作用:用户可以在命令提示符直接输入中文调用文件。
如何打开cmd?
1、在目录地址栏中输入cmd
2、按Windows+r键打开运行对话框,框中输入cmd打开
下面演示几种cmd指令:
指令1:“cls"-清空屏幕指令
指令2:shutdown -s 关机指令(此处不便演示)
指令3:shutdown -s -t 60 定时关机指令
指令4:shutdown -a 取消关机指令
继续输入shutdown -a,关机取消
在一些程序中,我们往往能看到使用system函数对以上等指令进行引用使用。
system函数的作用就是为了调用Windows系统命令设置的。
下面我们在关机程序中演示使用system函数
关机程序
有了上面的cmd指令和system函数,就可以写我们的关机程序了。
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char arr[50] = { 0 };
system("shutdown -s -t 180");
again:
printf("你的电脑将在3分钟内关机,输入abc,则取消关机\n");
scanf_s("%s",arr,50);
if (strcmp(arr,"abc") == 0)
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}
重点提示:
感谢阅读,欢迎大家批评指正!
2301_79834205: 用n>9就可以实现你所说的数据
Mikk-: 条件判断部分是n>=10时就可以,博客代码没有测试这样的数据
消掉黑眼圈: 例题1 顺序打印问题中,是输入任何正整数都能顺序打印出来吗?当我们输入10、101、102、103等数的时候 不会按顺序输出1 0、1 0 1、1 0 2、1 0 3
都坐下我可以C: 沃趣,博主从事c++开发吗,厉害厉害,一起学习
_ZestyJt: 大佬,写的真不错呀,支持支持