wml,

导航

数组总结

一,一维数组

1,定义

类型名 数组名[数组长度]

类型名指定数组中每个元素的类型;数组名是数组变量的名称,是一个合法的标志符;数组长度是一个整型常量表达式,设定数组的大小。

2,初始化

一般形式:类型名 数组名[数组长度] = {初值表}

例如:int a[10] = {1,2,3,4,5,6,7,8,9,10}            此时a[0]为1,a[1]为2……a[9]为10。

静态数组如果没有初始化,系统自动给所有的数组元素赋0

例如:static int b[3]等价于static int b[3] = {0,0,0}

数组初始化也可只针对部分元素,

例如:static int b[5] = {1,2,3}            此时b[3]为0,b[4]为0。

数组初始化时,如果对全部数组都赋了值,就可以省略数组长度,此时系统会根据初值的个数自动给出数组的长度。

 

 

3,例题   输出所有大于平均值的数
 

本题要求编写程序,将输入的n个整数存入数组a中,然后计算这些数的平均值,再输出所有大于平均值的数。

输入格式:

输入在第1行中给出一个正整数n(1n10),第2行输入n个整数,其间以空格分隔。题目保证数据不超过长整型整数的范围。

输出格式:

输出在第1行给出平均值,保留2位小数。在第2行输出所有大于平均值的数,每个数的后面有一个空格;如果没有满足条件的数,则输出空行。

如果输入的n不在有效范围内,则在一行中输出"Invalid."。

输入样例1:

10
55 23 8 11 22 89 0 -1 78 186
 
结尾无空行

输出样例1:

47.10
55 89 78 186 
 
结尾无空行

输入样例2:

0
 

输出样例2:

Invalid.



答案
 
 
#include <stdio.h>
int main ()
{
int n,i,a[10],sum;
double average;
  sum=0;
scanf("%d",&n);
  if(n>=1&&n<=10)
 {
    for(i=0;i<n;i++)
  {
 
      scanf("%d",&a[i]);
      sum=sum+a[i];
    }
    average=sum/n;
    printf("%.2f\n",average);
    for(i=0;i<n;i++)
     {
      if(a[i]>average)
      {
        printf("%d ",a[i]);
      }
    }
    printf("\n");
  }
  else
 
   {
    printf("Invalid.");
  }
return 0;

}
 
二,二维数组
1,定义
类型名 数组名[行长度][列长度]
行长度和列长度分别是给定的数组的行数和列数
例如:int a[3][2]                           定义一个二维数组a,3行2列,共6个元素。
2,引用
引用二维数组的元素要指定两个下标,即行下标和列下标,形式为:
数组名 [行下标][列下标]
如int a[3][2] 的元素为a[0][0],a[0][1],a[1][0],a[1][1],a[2][0],a[2][1]。
3,初始化
一般形式为:类型名 数组名[行长度][列长度] = {{初始表0},...,{初始表k}}
例如:int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}            此时,a数组中各元素为
1 2 3
4 5 6
7 8 9
等价于int a[3][3] = {1,2,3,4,5,6,7,8,9} 
二维数组没有复制的元素初始值也都为0,也可省略其长度。
4,例题 方阵转置 (15 分)
 

本题要求编写程序,将一个给定的 n×n 方阵转置(行列互换)后输出。

输入格式:

输入第一行给出一个正整数n(1n6)。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:

输出转置后的n行n列矩阵,每个数占4位。

输入样例:

3
1 2 3
4 5 6
7 8 9
 
结尾无空行

输出样例:

   1   4   7
   2   5   8
   3   6   9
 
结尾无空行
答案:
 
#include <stdio.h>
#define N 11
int main()
 
{
    int i,j,n;
    int a[N][N];
    scanf("%d",&n);
 
    for(i=0;i<n;i++){
 
        for(j=0;j<n;j++){
            scanf("%d",&a[i][j]);
        }
    }
 
    for(j=0;j<n;j++){
 
        for(i=0;i<n;i++){
            printf("%4d",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}
三,字符串
1,定义
字符串常量就是用一对双引号括起来的字符序列,即一串字符,它有一个结束标志'\0'。
2,初始化
stratic char s[6] = {'H','a','p','p','y','\0'} 数组s中就放了字符串Happy。
字符串未赋值的元素值不确定,但这并不影响随后对字符串”Happy“的处理,由于字符串遇'\0'结束,所以,数组中
第一个'\0'前面的所有字符和第一个'\0'一起构成了字符串”Happy“,也就是说,第一个'\0'之后的其他数组元素
都与该字符串无关。




 
 

 

posted on 2021-11-06 19:57  wml,  阅读(96)  评论(0编辑  收藏  举报