——构造类型
->数组
     ->一维数组
     ->相同类型的一组数据
     ->类型修饰符--数组名—[数组的元素个数(必须是整型表达式或者是整型常量,不能是变量)] {初始化}
    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. ExifInterface 多媒体文件附加信息

    简介         ExifInterface类主要描述多媒体文件比如JPG格式图片的一些附加信息,包括拍摄时的光圈.快门.白平衡.ISO.焦距.日期时间等各种和拍摄条件以及相机品牌.型号.色彩编码 ...

  2. Char Tools,方便的字符编码转换小工具

    工作关系,常有字符编码转换方面的需要,写了这个小工具 Char Tools是一款方便的字符编码转换小工具,基于.Net Framework 2.0 Winform开发 主要功能 URL编码:URLEn ...

  3. OpenXML_导入Excel到数据库

    (1).实现功能:通过前台选择.xlsx文件的Excel,将其文件转化为DataTable和List集合 (2).开发环境:Window7旗舰版+vs2013+Mvc4.0 (2).在使用中需要用到的 ...

  4. sqllog 8.32 注册码

    注册信息: Name:kkkboy[CrSky] Registration code: Professional 17cb5c23-8653-418f-b81b-5582c7a5a2d7 Enterp ...

  5. C++中的dynamic_cast和static_cast

    代码: #include <cstdio> #include <iostream> using namespace std; class A{ public: virtual ...

  6. uva 10260 - Soundex

    题目:编码翻译,有些字母有对应的数字,有的没有,如果连续对应的数字相同只输出一个. #include <iostream> #include <cstdlib> #includ ...

  7. ASP.NET环境下集成CKEditor与CKEditor实现文件上传

    1.从http://ckeditor.com网站上下载ckeditor_aspnet_3.6.4与ckfinder_aspnet_2.4; 2.解压下载的文件ckeditor_aspnet_3.6.4 ...

  8. 判断Python输入是否为数字

    在接收raw_input方法后,判断接收到的字符串是否为数字 例如: str = raw_input("please input the number:") if str.isdi ...

  9. jQuery Mobile 网格

    在列容器中,根据不同的列数,子元素可设置类 ui-block-a|b|c|d|e.这些列将依次并排浮动. 网格中的列是等宽的(总宽是 100%),无边框.背景.外边距或内边距. 例: 对于 ui-gr ...

  10. [UVALive] 6492 Welcome Party(最小点覆盖)

    6492 Welcome Party For many summers, the Agile Crystal Mining company ran an internship program for ...