数组、排序

关于排序 :参考

关于数组: 参考

求a[i][j]行与列的和然后求平均值 参考

二维数组使用指针的表示方法  参考

字符串数组:char  name [5][20] ={ {} , {} ,{} ,{} ,{} };  或者 char name[5][20] = { "xxx", "xxx", "xxx",  "xxx", "xxx"};

二维数组就是一维数组的组合,数组维度大于2就是多维数组.

二维数组如何用指针表示int b[2][5]用下标方法表示如下int b[i][j]假设i = 0; j = 0,1,2,3,4;用指针方法表示为* (* (b+i)+j) 也可演变为* (b[i]+j) 也可演变 (* (b+i) ) [j]
二维数组如何用指针表示
int b[2][5]
用下标方法表示如下
int b[i][j]
假设i = 0; j = 0,1,2,3,4;
用指针方法表示
* (* (b+i)+j) 演变 * (b[i]+j) 演变 (* (b+i) ) [j]

二维数组可以看成是指针的指针,b[][] = **b;
比如b[2][5];
它是一个2行5列的二维数组,也可以看成是二级指针,一级存放的是行指针,然后每个行指针里面其实又是指向了5个列元素.
*(*(b+i)+j),*(b+i)是先取行指针,然后+j偏移到所要的列,然后*取值就得到i行j列的数据了.

实战代码:

 //计算到每一列的和之后,求平均值      short a[3][4] = { 0 }, sum = 0;
for (int i = ; i < ; i++) {
for (int j = ; j < ; j++) {
a[i][j] = arc4random() % ( - + ) + ;
printf("%d \t", a[i][j]);
}
printf("\n");
}
printf("\n");
for (int j = ; j < ; j++) {
for (int i = ; i < ; i++) {
// b[i][j] = arc4random() % ( 40 - 30 + 1 ) + 30;
printf("%d \t", a[i][j]);
sum += a[i][j];
}
printf("平均值 %.2f ",sum *1.0 / );
printf("\n");
sum = ;
}
//假如有这样一个数组num[i][j]
for(i=;i<行数;i++)
{
n=;
for(j=;j<列数;j++)
{
n=n+num[i][j];//各行之和
}
n=n/列数;//各行平均值

//内外for 调换求出的就是各列平均值。
for(j=;j<列数;j++)
{
n=;
for(i=;i<行数;i++)
{
n=n+num[i][j];//各列之和
}
n=n/行数;//各列平均值
 //将数组的行与列互换位置然后打印
short a[][] = { }, sum = ;
for (int i = ; i < ; i++) {
for (int j = ; j < ; j++) {
a[i][j] = arc4random() % ( - + ) + ;
printf("%d \t", a[i][j]);
}
printf("\n"); }
printf("\n");printf("\n");
for (int j = ; j < ; j++) {
for (int i = ; i < ; i++) {
printf("%d \t", a[i][j]);
}
printf("\n");
}
//求行或列中最大元素
short a[][] = { }, max = ;
int row = ;//行标
int colume = ;//列标
for (int i = ; i < ; i ++) {
for (int j = ; j < ; j ++) {
a[i][j] = arc4random() % ( - + )+ ;
printf("%d \t",a[i][j]); if (max < a[i][j] ) {
max = a[i][j];
row = i;
colume = j;
}
}
printf("最大值为%d 行:%d 列 %d",max,row + ,colume + );
max = ;
printf("\n");
}
printf("\n");
  //耶稣门徒游戏
//第一步;如何表示这13个人?用一个一维数组 【13】
//第二部;如何报数? count
//第三部;什么时候报到3的人退出游戏? 标记退出游戏的人的状态,让其置为0,在数组中就是该元素置为0
//第四部;什么时候结束游戏? 剩余1个人的时候游戏结束,用 while 循环
//第五步;如何记录下一轮循环
/*
int a[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13};
int count = 0;//记录报数
int pernum = 13;//记录还能游戏的人
int i = 0;//初始化循环变量
while (pernum > 1) {
if (a[i] != 0) {//a[i] != 0 表示当前此人还在游戏中 ,报数有效
count ++;//记录报数
}
if (count == 3) {
count = 0;//计数器清零
pernum --;//游戏人数要减一,此人退出游戏
a[i] = 0;//标记此人退出游戏
}
i++;
//当i == 13时,说明该第14个人报数,此时转到第一个人继续游戏
if (i == 13) {
i = 0;//进入下一轮游戏
}
}
//数组中元素不为 0 的人就是叛徒
for (int i = 0; i < 13; i++) {
if (a[i] != 0 ){
printf("叛徒就是第 %d 个人",a[i]);
}
}

字符串排序

 char s[][];
int n,i,j,k;
printf("请输入比较字符串的个数:\n");
scanf("%d",&n);
printf("请输入字符串,然后按回车键:\n");
for(i=;i<n;i++){
scanf("%s",s[i]);
}
// gets(s[i]);
for(i=;i< n ;i++)
{
k=i;//记录字符串的下标
for(j = ;j < i;j++)
if(strcmp(s[i],s[j])<){
k=j;
char t[];
strcpy(t,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],t);
}
} printf("================================================\n");
for(i=;i<n;i++){
printf("%s \t",s[i]);
}

C:数组的更多相关文章

  1. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  2. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  3. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  4. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

  5. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  6. JavaScript常见的五种数组去重的方式

    ▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...

  7. js:给定两个数组,如何判断他们的相对应下标的元素类型是一样的

    题目: 给Array对象原型上添加一个sameStructureAs方法,该方法接收一个任意类型的参数,要求返回当前数组与传入参数数组(假定是)相对应下标的元素类型是否一致. 假设已经写好了Array ...

  8. javascript数组查重方法总结

    文章参考地址:http://blog.csdn.net/chengxuyuan20100425/article/details/8497277 题目 对下列数组去重: var arr = ['aa', ...

  9. 掌握javascript中的最基础数据结构-----数组

    这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...

  10. 小兔JS教程(四)-- 彻底攻略JS数组

    在开始本章之前,先给出上一节的答案,参考答案地址: http://www.xiaotublog.com/demo.html?path=homework/03/index2 1.JS数组的三大特性 在J ...

随机推荐

  1. 【Python】类和对象、继承、使用文件、存储、异常、标准库(不懂)

    当你调用这个对象的方法MyObject.method(arg1, arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2)——这就是self ...

  2. [转载] ffmpeg超详细综合教程——摄像头直播

    本文的示例将实现:读取PC摄像头视频数据并以RTMP协议发送为直播流.示例包含了 1.ffmpeg的libavdevice的使用 2.视频解码.编码.推流的基本流程 具有较强的综合性. 要使用liba ...

  3. notepad 行替换使用指南

    notepad++是开源的文本处理软件,性能堪比ultraedit,不过在转用notepad++之后一直为他的行替换功能纠结,UE当中只需要用 [^p] 就可以表示一行,但是在notepad++当中, ...

  4. windows下mysql 数据库的导入导出

    1.以.sql方式方式导入导出 http://www.360doc.com/content/11/0114/11/2905268_86441355.shtml 2.以.txt方式导入导出 http:/ ...

  5. Arduino 软重启 软件reset

    将12脚连接一个1K电阻,然后用电阻另一端连接RESET脚.注意不是12脚直接连接RESET!! 代码如下(要注意RESET脚为LOW时自动重启) #define PIN 12 void setup( ...

  6. 使用Jquery Mobile设计Android通讯录

    本系列教程将指导大家一步步使用Jquery Mobile设计一个Android的通讯录应用.其中在应用的界面部分,将使用jQuery Mobile框架,并且会指导大家如何使Android中提供的web ...

  7. myeclipse 8.5最新注册码(过期时间到2016年)

    myeclipse 8.5最新注册码(过期时间到2016年) 这几天myeclipse弹出注册码过期,去网上一搜,要么已过期,要么就剩一两个月.倒腾了半天,自己申请了几个注册码,给大家分享一下 Sub ...

  8. C++ STL算法系列6---copy函数

    现在我们来看看变易算法.所谓变易算法(Mutating algorithms)就是一组能够修改容器元素数据的模板函数,可进行序列数据的复制,变换等. 我们现在来看看第一个变易算法:元素复制算法copy ...

  9. 更新的packages.config所有的软件包?

    1. 你NuGet.exe的恢复你的包.运行的每个项目. nuget install packages.config 或用NuGet的2.7可以恢复所有包中的行. nuget restore Your ...

  10. Gridview点击Edit编辑未update和cancel后的问题

    在使用GridView时无意中发现一个问题: 第一步:点击列表中的某一行的"Edit"(例如第一行数据), 第二步:点击下一页,于是在下一页数据加载完成后就会看到对应的行(与第一步 ...