一维数组输入输出

 我来答
问明6E
高粉答主

2019-07-09 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.5万
展开全部

方法一、数组的下标法

如:

int a[5],i;

printf("Input five numbers:");

for(i=0;i<5;i++)

{

scanf("%d",&a[i]);

}

for(i=0;i<5;i++)

{

printf("%4d",a[i]);

}

方法二、数组名首地址法(指针法):指针增1运算的执行效率很高,利用指针的增1运算实现指针的移动,省去了每寻找一个数组元素都要进行的指针算术运算,执行效率最高。

说明:数组名有特殊含义,它代表存放数组元素的连续存储空间的首地址,即指向数组中第一个元素的常量指针,如"a+i"代表数组中下标为i的元素a[i]的地址(&a[i]),而"*(a+i)"表示取出首地址元素后第i个元素的内容,即下标为i的元素"a[i]"。

int a[5],i;

printf("Input five numbers:");

for(i=0;i<5;i++)

{

scanf("%d",a+i);

}

for(i=0;i<5;i++)

{

printf("%4d",*(a+i));

}

方法三、移动指针变量法:

说明:指向同一数组中不同元素的指针的关系运算用于比较他们所指元素在数组中的前后位置关系。指针的算术运算(如增1和减1)用于移动指针的指向,使其指向数组中的其它元素。

注意:p++和p+1是本质不同的两个操作。

同:都对指针变量p进行加1运算。

异:p+1不改变当前指针的指向,p仍指向原来指向的元素,p++讲指针变量p向前移动一个元素的位置,指向下一元素,p++是加上1*sizeof(基类型)个字节。

int a[5],*p;

printf("Input five numbers:");

for(p=a;p<a+5;p++)注意:p是指针变量,可以通过赋值操作改变他的值,使p指向数组中其他元素,而数组名a是一个常量指针,代表一个地址常量,其值是不能被改变的。

{                                             

scanf("%d",p);

}

for(p=a;p<a+5;p++)

{

printf("%4d",*p);

}

方法四、指针下标法:

int a[5],  *p=NULL,  i;

printf("Input five numbers:");

p=a;// p=a等价于p=&a[0]  //

for(i=0;i<5;i++)

{

scanf("%d",  &p[i]  );//  &p[i]等价于p+1  //

}

p=a;//   在再次循环开始前,确保指针p指向数组首地址   //

for(i=0;i<5;i++)

{

printf("%4d",  p[i]  );// p[i]等价于*(p+i)  //

}

鲨鱼星小游戏
高粉答主

2021-05-24 · 最爱分享有趣的游戏日常!
鲨鱼星小游戏
采纳数:2712 获赞数:238296

向TA提问 私信TA
展开全部

方法一、数组的下标法:

如:

int a[5],i;

printf("Input five numbers:");

for(i=0;i<5;i++)

{

scanf("%d",&a[i]);

}

for(i=0;i<5;i++)

{

printf("%4d",a[i]);

}

方法二、指针下标法:

int a[5],  *p=NULL,  i;

printf("Input five numbers:");

p=a;// p=a等价于p=&a[0]  //

for(i=0;i<5;i++)

{

scanf("%d",  &p[i]  );//  &p[i]等价于p+1  //

}

p=a;//   在再次循环开始前,确保指针p指向数组首地址   //

for(i=0;i<5;i++)

{

printf("%4d",  p[i]  );// p[i]等价于*(p+i)  //

}

数组声明

在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。

数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
松甜恬0Je4ba
推荐于2018-02-27 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3339万
展开全部
#include<stdio.h>
int main()
{
int i;
int a[5];
for(i=0;i<5;i++) //输入
scanf("%d",&a[i]);
for(i=0;i<5;i++) //输出。
printf("%d ",a[i]);
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-10-10
展开全部
#include<stdio.h>
int main()
{
int i;
int a[5];
for(i=0;i<5;i++) //输入
cin>>a[i];
for(i=0;i<5;i++) //输出。
cout<<a[i]<<" ";
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6391496
2011-10-10
知道答主
回答量:36
采纳率:0%
帮助的人:11.9万
展开全部
对的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式