您的位置:首页 > 其它

提高篇 第16-19课后---项目1 - 数组大折腾

2016-01-10 22:41 211 查看
【项目1 - 数组大折腾】

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

代码:

/*数组大折腾*/
#include <stdio.h>
void into(int b[]);
void put(int b[]);
int main()
{
    int a[20]={1,2,3,4,5,6,7,8,9,10};
    into(a);
    put(a);
    return 0;
}
void into(int b[])
{
    int c,i;
    for(i=10;i<20;i++)
    {
        printf("请输入值:");
        scanf("%d",&c);
        b[i]=c;
    }

}
void put(int b[])
{
    int i=0;
    do
    {
        printf("%d ",b[i]);
        i++;
        if(i%5==0)
            printf("\n");
    }while(i<20);
}
(2)创建一个长度为10的整型数组并初始化,由后往前(由第9个元素向第0个元素方向)输出数组中所有元素的值,改变数组元素的值,令所有的数据加倍,输出改变后的值。

代码:

/*数组大折腾*/
#include <stdio.h>
void put_1(int b[],int i);
void put_2(int c[],int i);
int main()
{
    int a[10]={0,1,2,3,4,5,6,7,8,9};
    put_1(a,9);
    put_2(a,9);
    return 0;
}
void put_1(int b[],int i)
{
    printf("从后往前该数组值依次是:");
    for(;i>=0;i--)
        printf("%d ",b[i]);
    printf("\n");
}
void put_2(int c[],int i)
{
    for(;i>=0;i--)
        c[i]*=2;
    put_1(c,9);
}
(3)创建一个长度为16的整型数组a并初始化,先输出数组中元素值为3的倍数的数,再输出所有下标为3的倍数的元素值。

代码:

/*数组大折腾*/
#include <stdio.h>
#include <time.h>
#include <windows.h>
void Put_1(int b[],int i);
void Put_2(int c[],int i);
void Time_1(int d[],int i);
int main()
{
    int a[16];
    Time_1(a,0);
    Put_1(a,0);
    Put_2(a,0);
    return 0;
}
void Put_1(int b[],int i)
{
    printf("数组中元素值为3的倍数的数是:\n");
    for(;i<16;i++)
    {
        if(b[i]%3==0)
            printf("a[%d]----%d\n",i,b[i]);
    }
    printf("\n");
}
void Put_2(int c[],int i)
{
    printf("下标为3的倍数的元素值是:\n");
    for(;i<16;i++)
    {
        if(i%3==0)
            printf("a[%d]----%d\n",i,c[i]);
    }
    printf("\n");
}
void Time_1(int d[],int i)
{
    srand(time(0));
    printf("正在随机生成数组值……………………请稍后\n");
    Sleep(2000);
    printf("随机产生的数组元素值为:\n");
    for(;i<16;i++)
        {
            d[i]=rand()%100;
            printf("%d ",d[i]);
        }
        printf("\n");
}
(4)创建一个长度为16的整型数组a并初始化,删除数组中所有能被3整除的元素(数组中实际有效使用的元素将不足16),输出删除后数组中的全部元素。

代码:

/*数组大折腾*/
#include <stdio.h>
#include <time.h>
#include <windows.h>
void Put_1(int b[],int i,int n);
void Put_2(int c[],int i);
void Time_1(int d[],int i);
int main()
{
    int a[16];
    Time_1(a,0);
    Put_1(a,0,0);
    return 0;
}
void Put_1(int b[],int i,int n)
{
    printf("正在删除数组中能被3整除的数:\n");
    Sleep(2000);
    for(;i<16;i++)
    {
        if(b[i]%3!=0)
            b[n++]=b[i];
        else
            printf("a[%d]----%d已被删除\n",i,b[i]);
    }
    printf("删除完毕!\n");
    Put_2(b,n);
}
void Put_2(int c[],int i)
{
    int f;
    printf("删除后的数组值为:\n");
    for(f=0;f<=i;f++)
    {
            printf("a[%d]----%d\n",f,c[f]);
    }
}
void Time_1(int d[],int i)
{
    srand(time(0));
    printf("正在随机生成数组值……………………请稍后\n");
    Sleep(2000);
    printf("随机产生的数组元素值为:\n");
    for(;i<16;i++)
        {
            d[i]=rand()%100;
            printf("%d ",d[i]);
        }
        printf("\n");
}
(5)创建一个长度为16的整型数组a并初始化前15个元素,输入一个整数b,将b插入到a[0]位置(原有的数据往后“移动”)。

代码:

/*数组大折腾*/
#include <stdio.h>
#include <time.h>
#include <windows.h>
void Put_1(int b[],int i);
void Put_2(int c[],int i);
void Time_1(int d[],int i);
int main()
{
    int a[16];
    Time_1(a,0);
    Put_1(a,0);
    return 0;
}
void Put_1(int b[],int i)
{
    int s;
    printf("请输入一个整数:\n");
    scanf("%d",&s);
    Put_2(b,15);
    b[0]=s;
    printf("插入b值后的数组排列为:\n");
    for(i=0;i<16;i++)
        printf("%d ",b[i]);
}
void Put_2(int c[],int i)
{
    for(i=15;i>=0;i--)
    {
        c[i]=c[i-1];
    }
}
void Time_1(int d[],int i)
{
    srand(time(0));
    printf("正在随机生成数组值……………………请稍后\n");
    Sleep(2000);
    printf("随机产生的前15个数组元素值为:\n");
    for(;i<15;i++)
        {
            d[i]=rand()%100;
            printf("%d ",d[i]);
        }
        printf("\n");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: