课外天地 李树青学习天地C语言程序设计 → [推荐]第六课代码讲义:数组


  共有10469人关注过本帖树形打印复制链接

主题:[推荐]第六课代码讲义:数组

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1939 积分:26594 威望:0 精华:34 注册:2003/12/30 16:34:32
[推荐]第六课代码讲义:数组  发帖心情 Post By:2015/10/30 21:43:55 [只看该作者]

如何把一个值赋给很多变量?
数组提供了一种循环访问变量的方法


int main()
{
    int array[10],i=0;
    array[0]=1;
    array[1]=1;
    for(i=0; i<10; i++)
        array[i]=1;
    for(i=0; i<10; i++)
        printf("array[%d]=%d\t",i,array[i]);

}


如果不赋值会怎么样?
int main()
{
    int array[10],i=0;
    array[0]=1;
    array[1]=1;

    for(i=0; i<10; i++)
        printf("array[%d]=%d\t",i,array[i]);

}

其他初始化赋值方法:
int main()
{
    int array[10]= {0,1,2,3,4,5,6,7,8,9},i=0;
    for(i=0; i<10; i++)
        array[i]=i;
    for(i=0; i<10; i++)
        printf("array[%d]=%d\t",i,array[i]);

}

一个例子(让用户分别给每个数组元素赋值,最后算出平均数)
#define LEN 4

int main()
{
    int array[LEN],i=0,sum=0;
    for(i=0; i<LEN; i++)
    {
        scanf("%d",&array[i]);
    }
    for(i=0; i<LEN; i++)
    {
        sum=sum+array[i];
    }

    printf("%5.2f",sum*1.0/LEN);

}

改进代码:
#define LEN 4

int main()
{
    int array[LEN],i=0,sum=0;
    for(i=0; i<LEN; i++)
    {
        scanf("%d",&array[i]);
         sum=sum+array[i];
    }
    printf("%5.2f",sum*1.0/LEN);

}

利用数组实现数位显示

int main()
{
    int number=0,i=0,array[5],divider=10000,j=0;
    scanf("%d",&number);
    for(i=0; i<5; i++)
    {
        array[i]=number/divider;
        number=number%divider;
        divider=divider/10;
        if(j==0 && array[i]>0)
        {

            j=5-i;
            printf("这是%d位数\n每个位数是:",j);

        }
        if(j>0)
            printf("%d ",array[i]);
    }

    printf("\n倒序结果为:");
    for(i=4; i>=5-j; i--)
        printf("%d ",array[i]);
}

 

数组排序
#define LEN 4

int main()
{
    int array[LEN],i=0,j=0,temp=0;
    for(i=0; i<LEN; i++)
    {
        scanf("%d",&array[i]);
    }
    for(i=0; i<LEN; i++)
    {
        for(j=i+1; j<LEN; j++)
        {
            if(array[i]>array[j])
            {
                temp=array[i];
                array[i]=array[j];
                array[j]=temp;
            }
        }
    }
    for(i=0; i<LEN; i++)
        printf("array[%d]=%d\t",i,array[i]);
}

转置二维矩阵
有问题?
#define LEN 4

int main()
{
    int array[LEN][LEN]= {1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4};
    int i=0,j=0,temp;
    for(i=0; i<LEN; i++)
    {
        for(j=0; j<LEN; j++)
            printf("[%d,%d]=%d\t",i,j,array[i][j]);
        printf("\n");
    }
    for(i=0; i<LEN; i++)
        for(j=0; j<LEN; j++)
        {
            temp=array[i][j];
            array[i][j]=array[j][i];
            array[j][i]=temp;
        }
    for(i=0; i<LEN; i++)
    {
        for(j=0; j<LEN; j++)
            printf("[%d,%d]=%d\t",i,j,array[i][j]);
        printf("\n");
    }
}

只需改动一个!
#define LEN 4

int main()
{
    int array[LEN][LEN]= {1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4};
    int i=0,j=0,temp;
    for(i=0; i<LEN; i++)
    {
        for(j=0; j<LEN; j++)
            printf("[%d,%d]=%d\t",i,j,array[i][j]);
        printf("\n");
    }
    for(i=0; i<LEN; i++)
        for(j=i; j<LEN; j++)
        {
            temp=array[i][j];
            array[i][j]=array[j][i];
            array[j][i]=temp;
        }
    for(i=0; i<LEN; i++)
    {
        for(j=0; j<LEN; j++)
            printf("[%d,%d]=%d\t",i,j,array[i][j]);
        printf("\n");
    }
}


删除指定元素
#define LEN 10
#include "stdio.h"
#include "stdlib.h"

main()
{
    int array[LEN]= {0,1,2,3,4,5,6,7,8,9},number=0,i=0,j=0;
    scanf("%d",&number);
    for(i=0; i<LEN; i++)
    {
        if(number==array[i])
        {
            break;
        }
    }
    for(j=i; j<LEN-1; j++)
    {
        array[j]=array[j+1];
    }
    array[LEN-1]=0;
    for(i=0; i<10; i++)
        printf("array[%d]=%d\t",i,array[i]);

}

 

 

 

 

 

[此贴子已经被作者于2015-11-05 20:47:26编辑过]

 回到顶部