-----------------------------------------------------------------------------

//  main.c 例
// Created by weichen on 15/1/9.
// Copyright (c) 2015年 weichen. All rights reserved.
#include <stdio.h> int main() {
// 求输入的平均数 int x = ; //输入的数
double num = ; //总和(这个定义为double, 因为计算结果可能出现浮点数)
int count = ; //个数
double per; //平均数(结果也定义double) printf("请输入一些数:"); scanf("%d", &x); //大于0时执行累计;输入小于等于0的值 回车确定 来终止循环,并执行后面的代码
while(x > )
{
num += x;
count++;
scanf("%d", &x);
} if(count > )
{
per = num / count;
printf("%f \n", per);
} return ;
}
//  main.c 例
// Created by weichen on 15/1/14.
// Copyright (c) 2015年 weichen. All rights reserved.
#include <stdio.h> int main() { //输入一个数,并输出平均值和大于平均值的数
//要点:需要存放输入的这些数 int x = ;
int n = ;
double total = ;
double per = ;
int number[]; //1. 定义数组 printf("请输入一些数:");
scanf("%d", &x); while(x != )
{
number[n] = x; //2. 数组元素赋值
total += x;
n++;
} if(n > )
{
per = total/n; printf("平均数为:%f\n", per); printf("大于平均数的数为:"); for(int i = ; i <= n; i++)
{
if(number[n] > per) //3. 使用数组元素
{
printf("%d\t", number[i]); //4. 遍历数组
}
}
} return ;
} 注:Xcode里编译后输入数字回车,number[n]=x 行报错 Thread1:EXC_BAD_ACCESS(code=2,address=0x7fff5fc00000),有人知道原因吗?
// main.c 例
// Created by weichen on 15/1/19
// Copyright (c) 2015年 weichen. All rights reserved.
#include <stdio.h> int main() {
//输入0-9范围内的数字,求输入每个输入的数字的次数
const int number = ;//1. 数组大小
int x;
int count[number]; //2. 定义数组
int i; for(i=; i<=number; i++)
{
count[i] = ; //3. 初始化数组
} printf("请输入:");
scanf("%d", &x); while(x != -)
{
if(x>= && x<=)
{
count[x]++; //4. 数组参与运算
}
scanf("%d", &x);
} for(i=; i <= number; i++)
{
printf("%d:%d\n", i, count[i]);
} return ;
}
//  main.c 一维数组
// Created by weichen on 15/1/28.
// Copyright (c) 2015年 weichen. All rights reserved.
#include <stdio.h> int main() {
/* 一. 数组的集成初始化
   int a[] = {1, 2, 6, 7, 9};    for ( int i = 0; i < 5; i++)
   {
   printf("%d\t", a[i]);
   }
  */
/* 1. 声明一个长度12的数组,第一个元素赋值为1,其余为0
   int a[12] = {1};
   for ( int i = 0; i < 12; i++)
   {
   printf("%d\t", a[i]);
   }
*/ /* 2. 不使用循环,初始化数组
  int a[12] = {0};
*/

/* 二. 集成初始化时的定位
   int a[12] = {[1]=2, 3, [4]=9};
   用[x]在初始化数据时给出定位
   没有定位的数据跟在前一个后面
   其它位置的值补0
   也可以不给出数组的大小,让编译器运算
   适合初始化稀疏的数组    {
   for(int i = 0; i < 12; i++) {
   printf("%d\t", a[i]); //0 2 3 0 9 0 ....
   }
     }
*/    /* 三. 数组赋值 */
int a[] = {, };
int length = sizeof(a)/sizeof(a[]);
int b[length];
//1. 数组变量本身不能被赋值,如:int b[] = a;错误
//2. 要把一个数组的值交给另一个数组,必须使用遍历,如下:
for(int i = ; i < length; i++) {
b[i] = a[i];
}
{
for(int i = ; i < length; i++) {
printf("%d\t", a[i]); //0 2 3 0 9 0 ....
}
}
//遍历数组作用:
//3. 赋值、初始化、判断值是否存在,计数
//4. 离开循环后,i不能再作为下标访问数组元素 return ;
}
/**
* 思考题:查找某值是否存在数组中
* @weiChen
*/ #include <stdio.h> int main()
{
int a[] = {, , , , , }; int key; int length = sizeof(a)/sizeof(a[]); printf("请输入一个数:"); scanf("%d", &key); int location = search(key, a, length); if(location != -)
{
printf("key:%d存在于数组a[]中。\n", key);
}
else
{
printf("数组a[]中不存在key:%d。\n", key);
} return ;
} /**
* 函数:找出key在数组中的位置
* @param key 位置
* @param a 数组
* @param length 数组长度
* @return 存在则返回数组的位置,否则返回-1
*
* int search(int key, int a[]; int length);
*/ int search(int key, int a[], int length)
{
for(int i = ; i < length; i++)
{
if(a[i] == key)
{
return i;
break;
}
} return -;
}
//  main.c 多维数组
// Created by weichen on 15/1/30.
// Copyright (c) 2015年 weichen. All rights reserved.
#include <stdio.h> int main(int argc, const char * argv[]) { //二维数组,三行五列矩阵
int a[][]; for(int i = ; i < ; i++) {
for(int j = ; j < ; j++) {
a[i][j] = i * j;
}
} //二维数组的初始化
int b[][] = {
{, , , , },
{, , , , },
}; //1.列数是必须给出的,行数可以由编译器来数。
//2.每一行一个{},逗号分隔
//3.最后的逗号可以存在,有古老的传统
//4.如果省略,表示补零
//5.也可以用定位(C99 ONLY) //int c[][3] = {{0}, {1}, {2}}; //三行三列,每列自动补零
//printf("%d", c[1][2]); int d[][] = {, , , , , , , , ,};//初始化为3列,自动分为三行
int i, j, k = ;
for(i = ; i < ; i++) {
printf("%d", d[k][i]);//循环输出d[2][i]
}
  
return ;
}
int a[][];

=>示意图

a[][], a[][], a[][], a[][]
a[][], a[][], a[][], a[][]
a[][], a[][], a[][], a[][]

17.2.23 备注 (数组值的输出):

由于数组是特殊的指针,即常量指针类型,那么 char arr[10] 可以 (char*)arr 取值;参考php内核中 ZVAL_STRING(z,s,duplicate) 的例子。

Link: http://www.cnblogs.com/farwish/p/4212336.html

[C语言]使用数组的更多相关文章

  1. 【算法】C语言实现数组的动态分配

    C语言实现数组的动态分配 作者:白宁超 2016年10月27日20:13:13 摘要:数据结构和算法对于编程的意义不言而喻,具有指导意义的.无论从事算法优化方向研究,还是大数据处理,亦或者网站开发AP ...

  2. C语言一维数组、二维数组、结构体的初始化

    C语言数组的初始化表示方法 一.C语言一维数组初始化: (1)在定义数组时对数组元素赋以初值.如: static int a[10]={0,1,2,3,4,5,6,7,8,9}; 经过上面的定义和初始 ...

  3. go语言的 数组、slice、map使用(转)

    golang群 点击加入 go语言的 数组.slice.map使用, 由于网上有很好的说明, 不需要再写了,请看这几篇: Go语言中的 Array, Slice和 Map 深入学习golang五篇,以 ...

  4. go语言 类型:数组

    在go语言中数组array是一组特定长度的有序的元素集合. go的数组类型由两部分组成——类型和长度,二者缺一不可.数组本来就是一块存储相同类型元素的连续内存空间,因此决定一个数组的类型,必然需要决定 ...

  5. C语言基础--数组及相关

    概念: 一堆相同类型的数据的有序集合 格式: 元素类型  数组名称[ 元素个数 ] 定义数组: // 定义了一个名称叫做scores的数组, 数组中可以存放3个int类型的数据 ]; // 只要定义一 ...

  6. 学习C语言的数组

    C语言的数组 数组声明的实例:int num[3];只要记下这个模板就好. 不建议使用变量定义数组,如果使用了变量定义数组,作为数组的元素的个数,不初始化的情况下是随机值,如果初始化会直接报错 注意: ...

  7. 对于C语言中数组名是指针的理解

    我们都知道,c语言中数组名是一个指针,比如下面这段代码 #include<iostream>using namespace std;int main(){ int a[4]={1,2,3, ...

  8. c语言中数组相关问题

    c语言中数组相关问题: 1.数组基本定义: 相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组 ...

  9. 线性表之顺序存储结构(C语言动态数组实现)

    线性表的定义:N个数据元素的有限序列 线性表从存储结构上分为:顺序存储结构(数组)和 链式存储结构(链表) 顺序存储结构:是用一段连续的内存空间存储表中的数据 L=(a1,a2,a3....an) 链 ...

  10. C语言入门(16)——C语言的数组

    和结构体类似,数组也是一种复合数据类型,它由一系列相同类型的元素组成.C语言支持一维数组和多维数组.如果一个数组的所有元素都不是数组,那么该数组称为一维数组. 一维数组的定义方式 在C语言中使用数组必 ...

随机推荐

  1. SSL&HTTPS简单介绍

    这篇是最近看SSL和HTTPS的一个简单性总结,其中内容大部分都是参考网络上的内容,自己归纳整理了下. SSL介绍 HTTPS介绍 HTTP请求数据工作流程: l  用户在浏览器中输入网址,并告诉浏览 ...

  2. vue事件深入

    事件对象: @click="show($event)" ev.clientX---接收 事件冒泡: 阻止冒泡: 1. ev.cancelBubble=true; 2.@click. ...

  3. TensorFlow使用基础-Tensor

    使用 TensorFlow 之前你需要了解关于 TensorFlow 的以下基础知识 :• 使用图 (graphs) 来表示计算 .• 在会话 ( Session ) 中执行图 .• 使用张量 (te ...

  4. MySQL--局域网、外网访问MySQL

    一.局域网.外网访问 1. 打开CMD,导航到当前MySQL的bin路径,如下图: 2. 访问MySQL:输入MySQL -u root -p,点击Enter键,即可看到密码输入框: 输入密码,点需E ...

  5. Android数据传递,使用广播BroadcastReceiver;

    Android数据传递有很多种,Intent意图传递或使用Bundle去传递,接口监听回调传递数据,也可以把数据保存起来,使用的时候去读取等等等...,"当你知道足够多的数据传递的方式之后, ...

  6. C# JToken类的使用,实现解析动态json数据、遍历、查找

    在原来解析json数据是,一般都是用反序列化来实现json数据的解读,这需要首先知道json数据的结构并且建立相应的类才能反序列化,一旦遇到动态的json数据,这种方法就不使用. 为了解决动态解析js ...

  7. python爬虫之登录

    #-*-coding:utf--*- import cookielib, urllib, urllib2 import json import threading,time class Order(o ...

  8. VS2015和QTcreator冲突解决办法

    当我安装了QT(联合VS的版本)和VS时候,刚开始几个月都是可以的,突然有一天不行了,一直显示出错(由于着急没有记录出错截图)!这个时候卸载QT和VS都没有用,两个软件连新建工程都不行了.试了网上说的 ...

  9. C#找出第n到m个素数之间所有之和

    static void Main(string[] args) { int n = int.Parse(Console.ReadLine()); //开始的数 int m = int.Parse(Co ...

  10. File Input Features

    文件输入功能 1.该插件将将一个简单的 HTML 文件输入转换为高级文件选取器控件.将有助于对不支持 JQuery 或 Javascript 的浏览器的正常 HTML 文件输入进行回退. 2.文件输入 ...