问题一:
创建一个有20个元素的整型数组,通过初始化,为数组中的前10个元素赋初值,然后通过键盘输入后10个元素的值,从前往后(从第0个到第19个)输出数组中元素的值,每5个元素换一行。
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[20]= {0,1,2,3,4,5,6,7,8,9};
int i,j;
for(i=10; i<=19; i++)
scanf("%d",&a[i]);
printf("由前往后数组中的值为:\n");
for(i=0,j=1; i<=19; i++,j++)
{
printf("%d ",a[i]);
if(j%5==0)
printf("\n");
}
return 0;
}
运行结果:
问题二:
创建一个长度为10的整型数组并初始化,由后往前(由第9个元素向第0个元素方向)输出数组中所有元素的值,改变数组元素的值,令所有的数据加倍,输出改变后的值。
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int i;
for(i=0;i<=9;i++)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<=9;i++)
{
a[i]=a[i]*2;
printf("%d ",a[i]);
}
return 0;
}
运行结果:
问题三:
创建一个长度为16的整型数组a并初始化,先输出数组中元素值为3的倍数的数,再输出所有下标为3的倍数的元素值。
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[16]={54,24,63,15,94,110,251,214,52,65,72,0,15,68,148,215};
int i;
printf("数组中,元素值为三的倍数的数是:");
for(i=0;i<=16;i++)
{
if(a[i]%3==0)
printf("a[%d] %d\n",i,a[i]);
}
printf("下标为3的倍数的元素值是");
for(i=0;i<=16;i++)
{
if(i%3==0)
printf("a[%d] %d\n",i,a[i]);
}
return 0;
}
运行结果:
问题四:
创建一个长度为16的整型数组a并初始化,删除数组中所有能被3整除的元素(数组中实际有效使用的元素将不足16),输出删除后数组中的全部元素。
代码:(抄之有道)
#include<stdio.h>
int main( )
{
int i,j;
int a[16]= {13,45,89,332,54,221,90,723,65,45,123,47,96,48,187,23};
for(i=0,j=0; i<16; ++i)
{
if(a[i]%3)
a[j++]=a[i];
}
printf("删除所有能被3整除的数后,剩余的数是:\n");
for(i=0; i<j; ++i)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
运行结果:
问题五:
创建一个长度为16的整型数组a并初始化前15个元素,输入一个整数b,将b插入到a[0]位置(原有的数据往后“移动”)。
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[16]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int i,b;
scanf("%d",&b);
for(i=15; i>0; --i)
{
a[i]=a[i-1];
}
a[0]=b;
for(i=0;i<16;i++)
printf("%d ",a[i]);
return 0;
}
运行结果:
通过学习,进一步掌握了一维数组的使用。