——构造类型
->数组
     ->一维数组
     ->相同类型的一组数据
     ->类型修饰符--数组名—[数组的元素个数(必须是整型表达式或者是整型常量,不能是变量)] {初始化}
    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. sqlserver获取当前id的前一条数据和后一条数据

    一.条件字段为数值的情况   select * from tb where id=@id; --当前记录   select top 1 * from tb where id>@id order  ...

  2. Geodatabase - 打开栅格数据

    打开栅格数据 和打开要素类的方式类似,打开栅格数据集需要用 IRasterWorkspace,如 //获得栅格工作空间(普通目录). public ESRI.ArcGIS.DataSourcesRas ...

  3. Catel帮助手册-Catel.Core(6):日志管理

    1,简介      从2.2版本开始,Catel使用了一个自定义的日志系统,这种方式,针对log4net的引用可以被移除,做这个修改主要是为了不强迫用户使用log4net,同时,log4net看起来很 ...

  4. xcode下载方式

    1.去AppStore下载 对于Xcode老是在AppStore升级失败,而且下载慢,可取找到了这个--> 官方 Xcode .dmg 文件下载链接:超级传送门 2.开发者中心官网下载 可参考这 ...

  5. self和super之间的区别

    关于 self 和 super 之间的区别, 首先要了解  1, self  是什么 :super 是什么.2,[ super init] 做什么.3,为什么要 self =  [super init ...

  6. js中关于一个数组中最大、最小值以及它们的下标的输出的一种解决办法

    今天在学习js中的数组时,遇到的输出一个数组中最大.最小值以及它们的下表,以下是自己的解决方法! <script type="text/javascript"> var ...

  7. YUI 之getLocation

    关于Y.getLocation的简介是 Returns the `location` object from the window/frame in which this YUI instance o ...

  8. 表单验证提交——submit与button

    之前做东西接触过表单验证提交,但是都是为了完成工作,做完就做完了,没有注过表单验证提交有几种方法,各方法都有啥区别.今天瞎折腾了一下,对他们研究了一下,如下是我个人的理解: submit: 从字面上看 ...

  9. Linux_access the file or directory which start with "-"

    cd -- filename/dirName [ccmobil@vm-a65a-fc19 wstemp]$ cd -/ -bash: cd: -: invalid option cd: usage: ...

  10. IOS 解析XML文档

    前段时间想找点事做,就是试着看能不能用豆瓣的API做点什么,于是就碰到了这个问题——XML解析. 老师还没讲,只能自己去查. XML文档解析主要有SAX和DOM两种模式,IOS上两种模式都可以用,这里 ...