——构造类型
->数组
     ->一维数组
     ->相同类型的一组数据
     ->类型修饰符--数组名—[数组的元素个数(必须是整型表达式或者是整型常量,不能是变量)] {初始化}
    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. 部署hibernate框架项目时出现问题:The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files.

    基本情况: (这些其实关系不大)我是直接impor导入HibernateDemo项目到eclipse中的,该项目的hibernate版本是3.6.7.Final版,使用了Hibernate Tools ...

  2. Windows Bridge for iOS: Let’s open this up

    (原文翻译过来的,原文链接http://blogs.windows.com/buildingapps/2015/08/06/windows-bridge-for-ios-lets-open-this- ...

  3. ExtJs在vs中的应用

    目标: 认识EXTJS(自己google) 在vs中创建EXTJS的编程环境 通过一个简单的例子了解EXTJS编程过程 内容: 个人理解EXTJS是一个基于ajax富客户端应用程序框架, 1,创建vs ...

  4. 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey>

    转自:http://hi.baidu.com/taotaowyx/blog/item/074bb8d83907bb3233fa1ce6.html 验证视图状态 MAC 失败.如果此应用程序由网络场或群 ...

  5. (转)SQL中的ISNULL函数介绍

    SQL中有多种多样的函数,下面将为您介绍SQL中的ISNULL函数,包括其语法.注释.返回类型等,供您参考,希望对您学习SQL能够有所帮助. ISNULL 使用指定的替换值替换 NULL. 语法ISN ...

  6. C#生成高清缩略图

    /// <SUMMARY> /// 为图片生成缩略图 /// </SUMMARY> /// <PARAM name="phyPath">原图片的 ...

  7. git 笔记记录

    分布式版本控制系统Git 是一套内容寻址文件系统,从核心上来看不过是简单地存储键值对.一: git 本地clone 一个仓库    1. 直接clone一个仓库:        $: git clon ...

  8. debian系(Ubuntu)安装jenkins(持续集成)

    wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c 'ec ...

  9. 读书笔记_Effective_C++_条款十五:在资源类管理类中提供对原始资源的访问

    void f(int* a) { cout <<* a << endl; } int main() { shared_ptr<int> p(new int(3)); ...

  10. Linux下makefile(一)

    makefile关系到了整个工程的编译规则.一个工程中的源文件不计数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文 ...