前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言一维数组-学习十二

C语言一维数组-学习十二

作者头像
XG.孤梦
发布2022-02-28 21:29:37
3350
发布2022-02-28 21:29:37
举报
文章被收录于专栏:日志随记日志随记

数组

  • 数组是一组有有序数据的集合,数组中各数据的排列是有一定规律的,下标代表数据在数组中的序号
  • 数组中的每一个元素都属于同一个数据类型
  • 数组必须先定义后使用
  • 定义
    • 类型符 数组名 [常量表达式]

一维数组

  • 定义的一般形式
    • 类型符 数组名 [常量表达式];
    • 例如: int a[4+6]; int b[10];
  • 引用数组元素的表示形式
    • 数组名 [下标] -例如: a[1] = 10; a[0]=a[5]+a[7]-a[2*3];
  • 注意:只能引用数组元素而不能一次整体调用整个数组全部元素的值

数组的复制

代码语言:javascript
复制
#include<stdio.h>

void main()
{
    int a[10] = { 1,2,3,4,5,6,7,8,9,10 }, b[10];

    for (int i = 0; i < 10; i++){
        b[i] = a[i];
        printf("%d ", b[i]);
    }
}
一维数组的赋值
  • 给数组赋值的方法:
    • 赋值语句对数组元素逐个赋值;
    • 采用初始化赋值;
    • 动态赋值(scanf())。
  • 数组初始化赋值:
    • 在数组定义时给数组元素赋初值。数组初始化是在编译阶段进行的。这样将减少运行时间,提高效率。
  • 一般形式
    • 类型说明符 数组名[常量表达式] = {值,值,...,值};
    • 例如: int a [10] ={0,1,2,3,4,5,6,7,8,9}; int a [10] ={0,1,2,3,4};
  • 如果想使一个数组中全部元素值为0。
    • 可以写成: int a[10]={0,0,0,0,0,0,0,0,0,0};int a[10]={0};
  • 在对全部数组元素赋初值时,可以不指定数组。
    • 例如: int a[5]={1,2,3,4,5}; 可以写成: int a[]={1,2,3,4,5};
  • 动态赋值
    • 可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。
    • 例如:
代码语言:javascript
复制
    for( i=0;i<10;i++)
         scanf_s( "%d", &a[il);
例子

对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输

代码语言:javascript
复制
#include<stdio.h>

void main()
{
    int a[10], i;

    for (i = 0; i < 10; i++)
        a[i] = i;
    for (i=9; i >= 0 ; i--)
        printf("%d ",a[i]);
}

将数组中各元素交换,将数组的第一个元素与最后一个交换,第二个元素与倒数第二个交换,以此类推。

代码语言:javascript
复制
#include<stdio.h>

void main()
{
    int a[10], i,j;

    for (i = 0; i <= 9; i++)
        a[i] = i;
    for (i = 0; i < 10 / 2; i++) {
        j = a[i];
        a[i] = a[9 - i];
        a[9 - i] = j;
    }
    for(i=0;i<=9;i++)
        printf("%d ",a[i]);
}

求一维数组中最大元素及其下标。

代码语言:javascript
复制
#include<stdio.h>

void main()
{
    int a[10], i,j,max;

    for (i = 0; i < 10; i++)
        scanf_s("%d",&a[i]);
    max = a[0];
    for (i = 0; i <10; i++)
        if (a[i]>max){
        max = a[i];
        j = i;
    }
    printf("max=%d,j=%d\n", max, j);

}

用数组处理求Fibonacci数列问题

代码语言:javascript
复制
#include<stdio.h>

void main()
{
    int i; 
    int f[10] = { 1,1 }; 
    for (i = 2; i < 10; i++)
        f[i] = f[i - 2] + f[i - 1]; 
    for (i = 0; i < 10; i++)
    {
        printf("%12d\n",f[i]);
    }
}

练习

练习

1、以下对一维数组a的正确说明是___。

(A)int a(10);

(B)int n=10,a[n];

(C)int n;scanf("%d",&n);

(D)

代码语言:javascript
复制
 #define SIZE 10 
 int a[SIZE];

2、以下能对一维数组a进行正确初始化的语句是___。

(A) int a[10]= (0,0,0,0,0);

(B)int a[10] = {};

(C)int a[] = {0};

(D)int a[10] = {10*1};

3、当从键盘输入18并回车后,下面程序的运行结果是___。

代码语言:javascript
复制
#include<stdio.h>

main()
{
    int x, y, i, a[8], j, u, v; 
    scanf_s("%d", &x);
    y = x;
    i = 0;
    do {
        u = y / 2;
        a[i] = y % 2;
        i++;
        y = u;
    }while (y >= 1); 
        for (j = i - 1; j >= 0; j--)
            printf("%d", a[j]);
    }

(A)10010

(B)10001

(C)01001

(D)00110

答案

1、D ? 2、C ? 3、A ?

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-02-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数组
    • 一维数组
      • 一维数组的赋值
      • 例子
  • 练习
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com