数组:
*    数组是一组有序数据的集合,数组中的数据排列有一定的规律,下标(从0开始)代表数据在数组中的序号
*    用数组名和下标来唯一的确定数组中的元素
*    数组中的每一个元素都属于同一种数据类型,不能把不同类型放到同一种元素中
*    s[15]:c语言中用来表示第15个数据的元素
*    数组和循环结合起来可以有效的处理大批量的数据
* 怎样定义和引用一维数组:
*    1、怎样定义一维数组:
*      要使用数组必须先定义数组:类型符 数组名[常量表达式]
*                              常量表达式可以包括常量和常量符号(int a[3+2]是合法的)
*                              但常量表达式不能包括变量(int a[n]是不合法的)
*                               int a[10];
*                               他表示定义了一个整型数组,数组名为a,此数组包括10个整型元素
*                              定义数组必须指定数组中元素的个数(常量表达式)
*                              对数组的大小不能动态定义,数组的大小不依赖于程序运行过程中变量的值
*   2、怎样引用一组一维数组:
*     引用数组元素的表达形式为:数组名[下标]
*                               只能引用数组元素而不能一次整体调用整个数组全部元素的值
*   3、一维数组的初始化(定义数组的同时给各数组元素赋值):
*                             a、 在定义数组时对全部数组赋予初始值
*                              int a[10]={0,1,2,3,4,5,6,7,8,9};
*                             b、只给数组中的一部分元素赋值
*                              int a[10]={0,1,2,3,4};系统自动给没有赋值的元素赋值为0;
*                             c、如果想整个数组的值都为0可以:
*                              int a[10]={0,0,0,0,0,0,0,0,0,0}||int a[10]={0}//未赋值部分自动为0
*                             d、对全部元素赋值时,由于元素个数已经确定,因此可以不指定数组长度:
*                              int a[5]={1,2,3,4,5}可以写成int a[]={1,2,3,4,5}(系统会根据数据个数确定数组长度);
* 怎样引用和定义二维数组:
*                        二维数组常称为矩阵,把数组写成行(row)和列(column)的形式
*   1、怎样定义二维数组:
*                        类型说明符 数组名[常量表达式][常量表达式]
*                        float pay[3][6]
*                        定义了一个float类型的二维数组,三行六列,有三个一维数组,每一个一维数组又包括六个一维数组
*                        在内存中,二维数组是连续存放的,是线性的
*   2、怎样引用二维数组:
*                        数组名[下标][下标]
*                        二维数组的数据元素也可以出现在表达式中,也可以被赋值(b[1][2]=a[2][3]/2是合法的)
*                        引用数组元素时,下标应该在已经定义的数组大小范围
*                        *要严格区分定义b[2][3]和引用b[2][3]的区别
*   3、二维数组的初始化:
*                        分行给数组赋值
*                        int a[2][3]={{1,2,3},{4,5,6},{7,8,9}};
*                        将所有数据写入,按照数据元素在内存中的排列顺序赋值
*                        int a[2][3]={1,2,3,4,5,6,7,8,9};//数据过多容易写漏
*                        对部分元素赋值,其余元素自动为0
*                        int a[2][3]={{2},{4},{5}};
*                        int a[2][3]={{1},{4,5}};
*                        int a[2][3]={{1},{},{5}};
*                        int a[][4]={{0,0,3}{}{1,10}}//可以
*                        如果对所有的元素赋予初值,对一维的长度可以不指定,但必须指定二维
*                        int a[2][3]={1,2,3,4,5,6};
*                        int a[][3]={1,2,3,4,5,6};与上面等价
*                        系统会自动推算一维的长度
* 字符数组:
*                        用来存放字符数据的数组是字符数组,一个元素内存放一个字符
*   1、怎样定义字符数组:
*                        char arr[10];
*                        arr[0]='i';
*                        也可以用整型数组来存放字符数据(int arr[10];arr[0]='i')合法但是浪费存储空间
*   2、字符数组的初始化:
*                       a、 把各个字符依次赋值给每一个元素
*                           char arr[10]={'i','q','s','e','v','b','n','w','t','t'};
*                       b、初始化时提供初值过程中初值数量大于元素数量,出现语法错误
*                          初始化时提供初值过程中初值数量小于元素数量,将字符赋值给前面的元素,其他元素自动定为'\0'
*                           char arr[4]={'a','x','u'};
*                       c、定义时可以忽略数组长度,系统会根据初值个数确定数组长度
*                           char arr[]={'a','s','d'};
*                       d、也可以定义一个二位字符数组;
*                            char arr[2][3]={{'a','d','f'},{'h','t','r'}};
*   3、怎样引用字符数组中的元素:
*                       for循环
*   4、字符串和字符串结束标志:'\0'
*                           在遇到'\0'时,表示字符串结束,把他前面的字符组成一个字符串
*                           C语言在字符数组存储字符串常量时,通常会自动加上'\0',占一个字节
*                           字符串的初始化:char c[]={"i love you"};也可以写成char c[]="i love you";
*                           字符数组不要求最后一个字符为'\0',甚至没有'\0'也是可以的;
*   5、字符数组的输入输出:
*                        a、逐个字符输出输入。%c;
*                        b、将整个字符串一次输入或输出  %s
*                        c、输出字符不包括'\0';
*                        d、%s输出时,输出项是字符数组名,而不是字符元素名
*                        f、遇到第一个\0就输出;
*                        g、scanf函数可以输入一个字符串;输入项是数组名,不加&,数组名代表数组第一个元素的地址
*   6、使用字符串处理函数:1、puts函数:输出字符串函数
*                          puts(str);
*                          2、gets函数:输入字符串函数
*                             gets(str);//str是已经定义的数组
*                          3、puts和gets只能获取和输入一个字符串
*                             putchar和getchar只能获取一个字符,通过循环可以输出字符串
*                          4、strcat:字符串连接函数strcat(str1,str2);//str1必须足够大接纳str2
*                          5、strcpy函数和strncpy函数:字符串复制函数
*                                          strcpy(str1,str2);2复制到1//1的大小必须足够大装下2;
*                                                   str2可以是数组名也可以是数组元素名也可以是常量
*                                                   strcpy(str1,str2);strcpy(str1,str2[0]);strcpy(str1,"you");
*                                          strncpy(str1,str2,n);strncpy可以将str2中的前n个字符复制到str1中,取代str1中的前两个字符
*                          6、strcmp函数:字符串比较函数
*                                         strcmp(str1,str2);//将两个字符串进行比较直到出现\0或不一样的字符为止
*                                         如果全部字符,则认为两个字符串相等,出现不相同的字符以第一对出现的为准
*                                         比较结果有函数值带回,相等0;1>2正整数;1<2负整数;字母越往后越大,小写字母大于大写字母
*                          7、strlen函数:测字符串长度的函数
*                                         strlen(str);函数值为字符串实际长度,不包括\0;
*                          8、strlwr(_strlwr)函数:转换为小写的函数;
*                                         strlwr(str);
*                          9、strupr(_strupr)函数:转换大写的函数;

*

int main()
{//定义数组和引用数组int t;int arr1[10];//arr1[10]表示数组包含10个元素t = arr1[6];//t等于arr1数组中序号为6的元素//对数组的10个元素依次赋值0,1,2,3……9并逆序输出int arr2[10] = { 0,1,2,3,4,5,6,7,8,9 };for (int i2 = 9; i2 >= 0; i2--)//数组输出只能单个输出不能整体输出{printf("%d ", arr2[i2]);}//有十个地区的面积,要求 对他们由小到大进行排列int arr3[10];for (int i = 0; i < 10; i++){scanf("%d", &arr3[i]);}printf("\n");for (int i = 0; i < 10; i++)//进行9次循环从0下标到9下标{for (int j = i+1; j < 9; j++)//每一趟循环中进行9-j次循环{if (arr3[i] > arr3[j])//i下标分别与循环中的j下标进行比较,最小的取代i下标的元素{int tmp;//借助第三者进行交换tmp = arr3[i];arr3[i] = arr3[j];arr3[j] = tmp;}}printf("%d\n", arr3[i]);//依次输出arr3[10]的值
}//将一个二维数组的行列互换,存到另一个二维数组中int arr4[2][3] = { 1,2,3,4,5,6 };int brr4[3][2];int k;for (int i4 = 0;i4 < 2; i4++){for (int j4 = 0; j4 < 3; j4++){k = arr4[i4][j4];for (int i5 = 0; i5 < 3; i5++){for (int j5 = 0; j5 < 2; j5++){brr4[i5][j5] = k;//对brr4[3][2]依次赋值}}  printf("%d  ", k);}printf("\n");}//有一个3*4的矩阵,求最大的值,以及他所在的行和列int arr6[3][4] = { 3,2,1,5,4,7,9,0,8,12,32,66 };int max, row, colum;max= arr6[0][0];for (int i7 = 0; i7 < 3; i7++){for (int j7 = 0; j7 < 4; j7++){if (arr6[i7][j7] > max){max = arr6[i7][j7];row = i7;colum = j7;}}}printf("max:%d\n行:%d\n列:%d", max, row, colum);//定义一个字符数组,输出一个已知的字符串char arr[5] = {'a','b','\0','c'};for (int i8 = 0; i8 < 5; i8++){printf("%c", arr[i8]);//输出字符串%c}//输出一个菱形图char a[][5] = { {'\0','\0','*'}, {'\0','*','\0','*'},{'*','\0','\0','\0','*'},{'\0','*','\0','*'},{'\0','\0','*'}};for (int i9 = 0; i9 < 5; i9++){for (int j9 = 0; j9 < 5; j9++){printf("%c ", a[i9][j9]);}printf("\n");}//%s输出时,输出项是字符数组名,而不是字符元素名char b[] = "asdfgg";printf("%s",b);//从键盘获取一个字符串;char c[5];scanf("%s", c);//输入项是数组名,不加&,数组名代表数组第一个元素的地址printf("%o", c);//%o是用八进制形式输出数组的起始地址printf("%s", c);
//输入输出函数char d[10] = "asd";puts(d);//字符串输出for(int i=0;i<10;i++){char a;a = d[i];putchar(a);//字符输出}
//连接函数:srtcat
char f[10] = "asdf";
char g[] = "xcvb";printf("%s", strcat(f, g));
//复制函数strcpy和strncpy
char h[] = "asgg";
char i[] = "df";
//strcpy(h, i);
//printf("%s", h);
strncpy(h, i, 2);//取代前两个字符
printf("%s", h);
//比较函数:strcmp;
char j[] = "asdf";
char k2[] = "asdg";
if (strcmp(j, k2) >= 0)
{printf("大于");
}
else
{printf("小于");
}
//大写变小写
char l[] = "ZXassC";
printf("%s\n", _strlwr(l));
//小写变大写
printf("%s",_strupr(l));
//输入一行字符,统计出现了多少个单词,单词之间用空格隔开;
char m[] = "i love you";
int sum = 1;
for (int i0 = 0; i0 < strlen(m); i0++)
{if (m[i0] ==  ' '){sum++;}
}printf("%d", sum);
//有三个字符串找出其中最大者;
char p[10];
char q[10];
char r[10];
scanf("%s %s %s", p, q, r);//从键盘获取三个字符串if (strcmp(p, q) >= 0)
{if (strcmp(p, r) >= 0){printf("%s", p);}elseprintf("%s", r);
}
else
{if (strcmp(q, r) >= 0){printf("%s", q);}elseprintf("%s", r);
}return 0;
}

第六章 利用数组处理批量数据相关推荐

  1. c语言程序定义不知数量的一维数组,c语言程序设计10-第6章 利用数组处理批量数据 6.1 怎样定义和引用一维数组.ppt...

    c语言程序设计10-第6章 利用数组处理批量数据 6.1 怎样定义和引用一维数组 * 临沂大学汽车学院:韩晓翠 第6章 利用数组处理批量数据 6.1 怎样定义和引用一维数组 授课要点 数组的概念 一维 ...

  2. 《C语言程序设计》(谭浩强第五版) 第6章 利用数组处理批量数据 习题解析与答案

    你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可以在线答题. 题目1:用筛选法求100 之内的素数. 解: 所谓"筛选法&q ...

  3. C语言程序设计第五版谭浩强课后答案 第六章《利用数组处理批量数据》习题答案 (大一大二、考研、计算机二级必看)

    第六章<利用数组处理批量数据>习题答案 1. 用筛选法求100之内的素数 2. 用选择法对10个整数排序 3. 求一个3 X 3的整形矩阵对角线元素之和 4. 有一个已经排好序的数组,要求 ...

  4. c语言可以利用数组处理批量数据库,C语言程序设计 利用数组处理批量数据.ppt...

    C语言程序设计 利用数组处理批量数据.ppt 6. strlen函数----测字符串长度的函数 其一般形式为: strlen (字符数组) 它是测试字符串长度的函数 函数的值为字符串中的实际长度 6. ...

  5. c语言宏定义数组_利用数组处理批量数据 C语言程序编写定义与利用数组技巧全归纳...

    利用数组处理批量数据 引用数组可以帮助人们很好的实现对一种属性的数据的处理.由于计算机键盘只能输入有限的单个字符而无法表示上下标,C语言规定用方括号中的数字来表示下标,如S[3]即表示S₃.数组与循环 ...

  6. Kali Linux Web 渗透测试秘籍 第六章 利用 -- 低悬的果实

    第六章 利用 – 低悬的果实 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 这章开始我们会开始涉及渗透测试的的利用层面.和漏洞评估的 ...

  7. 你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作...

    4.4  从语句到程序 了解了各种表达式和语句之后,就相当于掌握了写作文要用到的词语和句子,但是,仅有词语和句子是无法构成一篇有意义的文章的.要完成一篇文章,先需要确定这篇文章的结构,是先分述再总述, ...

  8. (转载)你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作...

    你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作 4.4  从语句到程序 了解了各种表达式和语句之后,就相当于掌握了写作文要用到的词语和句子,但是,仅有词语 ...

  9. 《快速掌握PyQt5》第三十六章 用PyQtGraph绘制可视化数据图表

    第三十六章 用PyQtGraph绘制可视化数据图表 36.1 下载PyQtGraph 36.2 基础知识与用法 36.3 将PyQtGraph嵌入到PyQt5中 36.4 小结 <快速掌握PyQ ...

最新文章

  1. linux系统一下剪贴板在哪里,Linux的最佳剪贴板管理器
  2. Spatial Pyramid Pooling(空间金字塔池化)-变尺度CNN训练
  3. 清华大学python课程_清华大学计算机系课程攻略
  4. [html] 举例说明图片懒加载的方案有哪些?
  5. 自从用了这几个网站后,linux下的开发(使用)更加简单化
  6. UML学习-----类图
  7. react-native 框架升级 安卓第三方插件报错 Android resource linking failed
  8. python输出文本对齐_python-使用PIL使文本居中对齐/居中对齐?
  9. vue微信支付回到原界面不执行mounted里的内容
  10. Hadoop的安装配置
  11. LINUX如何创建一个程序组
  12. Android移动应用开发大作业——日程管理+邮件反馈
  13. 三星note9刷android11,【极光ROM】-【三星NOTE9 N960X-845】-【V17.0 Android-Q-TG1】
  14. D5渲染器 2.0 全新升级|天气系统、路径动画、草地材质,内置海量正版素材库
  15. ASP.NET制作调查问卷
  16. mindmanager2021下载 最新版如何更新
  17. /usr/bin/xauth: file /home/wj/.Xauthority does not exist
  18. 收集N个超实用的 JS 片段( ES6+ 编写),你和大神只差这个宝典
  19. 记录微信小程序获取手机号报40029错误问题
  20. 方舟怎么查看服务器信息,方舟怎么查看登录过的服务器 | 手游网游页游攻略大全...

热门文章

  1. springboot集成邮箱配置ssl或tls协议
  2. 安装虚拟光驱时提示windows无法访问指定设备、路径或文件。可能没有权限访问该项目
  3. Java数据结构之栈与计算器
  4. solidwork放置螺丝孔以及显示螺纹的问题
  5. MySQL--count函数如果得到null的处理方法
  6. MySQL事务相关知识
  7. 《勋伯格和声学》读书笔记(十):减七和弦
  8. MTK平台MT6765 LCM屏调试步骤
  9. 如何从Mac电脑的时间机器中查看恢复特定文件夹备份?
  10. 主成分分析和主成分回归