——构造类型
->数组
     ->一维数组
     ->相同类型的一组数据
     ->类型修饰符--数组名—[数组的元素个数(必须是整型表达式或者是整型常量,不能是变量)] {初始化}
    int arr[] = {,,};
arr[] = ;
printf("%d",arr[]);
     ->数组内存的值为变量
     ->使用数组的时候中括号内可以是变量
->sizeof()是一个运算符,不是一个函数,可以计算变量或者变量修饰符占了多少个字节,也可以对数组进行计算占的字节数
    int a[] = {,,};
printf("%ld\n",sizeof(double));
printf("%ld\n",sizeof(char));
printf("%lu",sizeof(a));
     ->数组所占用的内存空间等于数组元素个数*单个元素所占的内存空间.
     
->用循环输出数组比较快
    short arr[] = {,,};
printf("%ld\n",sizeof(arr));
for (int i = ; i < ; i ++) {
printf("%d\t",arr[i]);
}
     ->数组合并
    for (int i = ; i < ; i++) {
int a[] = {}, b[] = {}, c[] = {};
for (int i = ; i < ; i ++) {
a[i] = arc4random() % + ;
b[i] = arc4random() % + ;
c[i] = a[i] + b[i];
if (c[i] == ) {
printf("\na[%d](%d)+ b[%d](%d)= c[%d](%d)",i,a[i],i,b[i],i,c[i]);
}
// printf("\na[%d](%d)+ b[%d](%d)= c[%d](%d)",i,a[i],i,b[i],i,c[i]); }
}
 ->循环输入值,赋值给相应的数组下标

//错误问题:

//数组是一个整体不能够参与运算

//只能取每个元素逐一使用

//随机一个具有20 整型数组  找出数组中最大值
int a[] = {};
int max = ;
for (int i = ; i < ; i++) {
a[i] = arc4random() % ;
printf("%d\t",a[i]);
if (a[i] > max) {
max = a[i];
}
//max = a[i] > max ? a[i]:max;
}
printf("\n最大数:%d",max); int a[] = {};
int min = arc4random() % ;
for (int i = ; i < ; i++) {
a[i] = arc4random() % ;
if (min > a[i]) {
min = a[i];
}
printf("%d ",a[i]);
}
printf("\n最小值:%d",min); int a[] = {};
for (int i = ; i < ; i ++) {
scanf("%d",&a[i]); }
for (int i = ; i < ; i++) {
printf("\t%d",a[i]);
}
——算法
->数组排序
     ->冒泡排序
          ->若有n个元素,则外层循环走n - 1次
          ->内层循环需要, n - 1 - i 次
 
     int arry[] = {};
for (int i = ; i < ; i ++) {
arry[i] = arc4random()% + ;
printf("%d\t",arry[i]);
}
printf("\n");
for (int i = ; i < ; i++) {
for (int j = ; j < - i; j++) {
if (arry[j] > arry[j + ]) {
int temp = arry[j];
arry[j] = arry[j+];
arry[j+] = temp;
}
}
}
for (int i = ; i < ; i++) {
printf("%d\t",arry[i]);
}

View maopao

     ->选择排序
          ->外层循环控制比较趟数,每趟开始的时候假定开始的位置是最小值
          ->内层循环,从后面的一个值开始逐一比较,如果比最小值更小,更新,最小值的          位置.
          ->每趟结束之后如果最小值的位置和假定的最小值位置不一样则交换,一样则不用交换位置.
 
(也就是每趟比较的是下标,交换的也是下标,保证每趟交换之后,下标是最小的,然后再与最初假定的最小下标相比,如果不相同  则交换值)
 
     int arry[] = {};
for (int i = ; i < ; i++) {
arry[i] = arc4random() % ;
printf("%d\t",arry[i]);
}
for (int i = ; i < ; i++) {
int minIndex = i;
for (int j = i + ; j < ; j++) {
if (arry[minIndex] > arry[j]) {
minIndex = j;
} }
if (minIndex != i) {
int temp = arry[i];
arry[i] = arry[minIndex];
arry[minIndex] = temp;
}
}
printf("\n");
for (int i = ; i < ; i++) {
printf("%d\t",arry[i]);
}
—字符数组
     ->数组里也都是变量
     ->%s专门输出字符串
     ->\0 标志字符数组的结束
    //计算字符串数组中的空格数
char a[] = "aslkdj alskf salkjd slkf";
int i = ,sum = ;
while (a[i] != ) {
if (a[i] == ' ') {
sum++;
}
i++;
}
printf("%d",sum); char str[] = "";
//scanf("%s",str );
scanf("%[^\n]",str);
// gets(str);
printf("%s",str);
return ;
->strlen()(无符号长整型)
 
输出时并不考虑\0
->strcpy(后边拷到前边)
     ->最后一个\0会被拷过去
     ->被考入的字符串数组范围必须大于 要拷的字符串范围,不然会越界,虽然还会执行,但是有风险.
->strcat()
     ->两个字符串连到一起
     ->被拼入的字符串内存也要够大,不然会报错
->strcmp()
         ->逐一比较两个字符串相对应的字符的ASCII码值大小,返回值是整型
          ->如果两个字符串相应位置的ASCII码的差值不是零,则返回差值,也会是负数
->计算字符数组中空格数
->输入字符串
     ->scanf遇到空格默认是结束
     ->输出格式改为:”%[^\n]” 除了空格都要
     //字符数组
//char arry[10] = {'m','a','o','m','a','o','h','h'};
// char arr[10] = {"maomaohehe"};
// printf("%c",arry[7]);
// arry[3] = 0;
// char arry1[] = "hello";//系统会自动补一个\0
//// char arry3[] = {'h' , 'e', 'l', 'l', 'o'};
// char arry2[] = {'h' , 'e', 'l', 'l', 'o'};//这中方法系统不会补\0 如果用printf("%s\n",arry2);输出 系统不会停止,除非遇到\0
// printf("%s\n",arry2); //printf("%s",arry);
//
// char string[] = "i love iOS!";
// unsigned long length = strlen(string);
// printf("%lu",length); // char string[] = "iloveiOS";
// int i = 0;
// while (string[i] != 0) {
// i++;
// }
// printf("%d",i); // char arry1[20] = "aaaaaaaa";
// char arry2[10] = "iphone";
//// strcpy(arry1, arry2);
//// printf("%s",arry1);
//// strcat(arry1, arry2);
//
// int result = strcmp(arry1, arry2);
// //printf("%s",arry1);
// printf("%d",result);

C-冒泡排序,选择排序,数组的更多相关文章

  1. 09-java学习-数组-冒泡排序-选择排序-数组工具类编写-查找-扩容

    数组的排序算法 查找算法 数组协助类Arrays的学习和使用 数组的扩容

  2. 归并排序 & 计数排序 & 基数排序 & 冒泡排序 & 选择排序 ----> 内部排序性能比较

    2.3 归并排序 接口定义: int merge(void* data, int esize, int lpos, int dpos, int rpos, int (*compare)(const v ...

  3. 学习C#之旅 冒泡排序,选择排序,插入排序,希尔排序[资料收集]

    关于冒泡排序,选择排序,插入排序,希尔排序[资料收集]  以下资料来源与网络 冒泡排序:从后到前(或者从前到后)相邻的两个两两进行比较,不满足要求就位置进行交换,一轮下来选择出一个最小(或最大)的放到 ...

  4. C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序

    C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序 以下列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序 ...

  5. C语言实现 冒泡排序 选择排序 希尔排序

    // 冒泡排序 // 选择排序 // 希尔排序 // 快速排序 // 递归排序 // 堆排序 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h& ...

  6. python算法(一)基本知识&冒泡排序&选择排序&插入排序

    本节内容: 算法基本知识 冒泡排序 选择排序 插入排序 1. 算法基本知识 1.1 什么是算法? 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为 ...

  7. 【数组】—冒泡排序&&选择排序---【巷子】

    /* 什么是冒泡排序:从头到尾比较相邻的两个数的大小,如果符合条件则进行比较 [注]:从小到大进行排序 假设有一个数组 var arr = [9,8,7,6,5,4]; 我们想要进行这个数组进行排序那 ...

  8. 冒泡排序 & 选择排序 & 插入排序 & 希尔排序 JavaScript 实现

    之前用 JavaScript 写过 快速排序 和 归并排序,本文聊聊四个基础排序算法.(本文默认排序结果都是从小到大) 冒泡排序 冒泡排序每次循环结束会将最大的元素 "冒泡" 到最 ...

  9. php基础排序算法 冒泡排序 选择排序 插入排序 归并排序 快速排序

    <?php$arr=array(12,25,56,1,75,13,58,99,22);//冒泡排序function sortnum($arr){    $num=count($arr);    ...

  10. 数组排序-冒泡排序-选择排序-插入排序-希尔排序-快速排序-Java实现

    这五种排序算法难度依次增加. 冒泡排序: 第一次将数组相邻两个元素依次比较,然后将大的元素往后移,像冒泡一样,最终最大的元素被移到数组的最末尾. 第二次将数组的前n-1个元素取出,然后相邻两个元素依次 ...

随机推荐

  1. Struts的核心配置

    一.配置struts.xml文件 1.struts.xml文件 2.常量配置 <constant> struts.properities web.xml中的<init-param&g ...

  2. Linux中的小程序—— 进度条

    在说正事之前,首先科普一下在什么是回车什么是换行? 我们通常所说的回车就是从一行的末尾跳到另一行的开头,但事实上这却是由回车和换行两个动作所完成的,也就是键盘上<enter>所完成的工作. ...

  3. Lambda 笔记

    lambda表达式,将会带来代码的灵活性,同时使我们的代码更具表现力. Dim doubleIt As Func(Of Integer, Integer) = _ Function(x As Inte ...

  4. BFC——块级格式上下文

    BFC中的B指的是block,对应的还有IFC,I指的是inline.对于BFC的理解可以参考层叠上下文.页面中,盒子的排布规则,是生效在对应的BFC中.两个BFC中的布局互不影响.页面的本身的根本身 ...

  5. Flexbox属性查询列表

    1.任何一个flexbox布局的第一步是需要创建一个flex容器.为此给元素设置display属性的值为flex.在Safari浏览器中,你依然需要添加前缀-webkit. .flexcontaine ...

  6. permission is only granted to system apps--Android manifest权限问题

    在android的manifest.xml下编辑如下代码:<uses-permission android:name="android.permission.INTERNET" ...

  7. [.NET]Repeater控件使用技巧

    1.控制Repeater表格中的按钮显隐 1.1 定义方法 public void Repeater1_ItemDataBinding(object sender, RepeaterItemEvent ...

  8. 解读CSS的背景(background)样式

    background-color: 可以为所有的元素设置背景色,这个属性接受任意合法的颜色值,如果希望背景色从元素文本向外少有延伸,只需增加一些内边距(padding). 注意:background- ...

  9. (转)函数中使用 ajax 异步 同步 返回值错误 主函数显示返回值总是undefined -- ajax使用总结

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAloAAAE0CAIAAAB7LwoKAAAgAElEQVR4nO2dy6sc152A6+/R2mXwSn ...

  10. ecshop代码详解之init.php

    在includes/init.php目录下 因为工作原因,需要对ecshop二次开发,顺便记录一下对ecshop源代码的一些分析: 首先是init.php文件,这个文件在ecshop每个页面都会 调用 ...