Rss & SiteMap

课外天地 李树青 http://www.njcie.com

李树青 论坛 南京 财经 课外天地
共1 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
admin 发表于: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编辑过]
共1 条记录, 每页显示 10 条, 页签: [1]

Copyright ©2002 - 2016 课外天地.Net
Powered By Dvbbs Version 8.3.0
Processed in .01563 s, 2 queries.