第十四周的实践之数组大折腾

来源:互联网 发布:淘宝的康恩贝那么便宜 编辑:程序博客网 时间:2024/05/20 14:22

作者:夏晓林

时间:2016.12

题目描述:

(1):创建一个有20个元素的数组,通过初始化,为数组的前10个元素赋值,然后通过键盘输入后10个元素的值,从前往后(从第0个到第19个)输出数组中的值,每五个元素换一行。

问题及代码:

#include <stdio.h>#include <stdlib.h>int main(){    int i,j=0,b;    int a[20]= {0,1,2,3,4,5,6,7,8,9};    for(i=10; i<=19; i++)    {        scanf("%d",&b);        a[i]=b;    }    printf("由前往后,数组的值为\n");    for(i=0; i<=19; i++)    {        printf("%d ",a[i]);        j++;        if(j%5==0)            printf("\n");    }    return 0;}

运行结果:

(2)创建一个长度为10的整数数组并初始化,由前往后(由第9个元素向第0个元素方向)输出数组中所有元素的值,改变数组元素的值,令所有的数据加倍,输出改变后的值。

问题及代码:

#include <stdio.h>#include <stdlib.h>int main(){    int i;    int a[10]= {0,1,2,3,4,5,6,7,8,9};    printf("由后往前,数组的值为\n");    for(i=9; i>=0; i--)    {        printf("%d ",a[i]);    }    printf("\n");    printf("由前往后,改变后数组的值为\n");    for(i=0; i<=9; i++)    {        a[i]+=a[i];        printf("%d ",a[i]);    }    return 0;}

运行结果:

(3)创建一个长度为16的整型数组a并初始化,先输出数组中元素值为3的倍数的数,再输出所有下标为3的倍数的元素。

问题及代码:

#include <stdio.h>#include <stdlib.h>int main(){    int i;    int a[16]= {13,45,54,90,723,45,123,96,69,48,0,332,15,85,25,35};    printf("数组中元素的值为3的倍数的数是\n");    for(i=0; i<=15; i++)    {        if(a[i]%3==0)            printf("a[%d] %d\n",i,a[i]);    }    printf("\n");    printf("数组中下标的值为3的倍数的数是\n");    for(i=0; i<=15; i++)    {        if(i%3==0)            printf("a[%d] %d\n",i,a[i]);    }    return 0;}

运行结果:



(4)创建一个长度为16的整形数组a并初始化,删除数组中所有能被3整除的元素(数组中实际有效使用的元素将不足16),输出删除后数组中的全部元素。

问题及代码:

#include <stdio.h>#include <stdlib.h>int main(){    int i,j=0;    int a[16]= {13,45,54,90,723,45,123,96,69,48,0,332,15,85,25,35};    for(i=0; i<=15; i++)    {        if(a[i]%3!=0)            a[j++]=a[i];    }    printf("删除后剩下的数是\n");    for(i=0; i<j; i++)    {        printf("%d ",a[i]);    }    return 0;}

运行结果:

(5)创建一个长度为16的数组a并初始化前15个元素,输入一个整数b,将b插入到a[0]位置(原有的数据往后移)。

问题及代码:

#include <stdio.h>#include <stdlib.h>int main(){    int i,d;    int a[16]= {13,45,54,90,723,123,96,69,48,0,332,15,85,25,35};    scanf("%d",&d);    for(i=15; i>0; i--)    {        a[i]=a[i-1];    }    a[0]=d;    printf("整个数组的数是\n");    for(i=0; i<16; i++)    {        printf("%d ",a[i]);    }    return 0;}

运行结果:



学习心得:删除时,换个想法,将要的留下就是将不要的删除,数组移动时要从后往前进行。

0 0
原创粉丝点击