【项目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");
}