C语言中,如何把数组里面的每一项都初始化为同一个值?

假如intarr[100];我想把arr数组里的100项都初始化为1.怎么做?难道只能用循环来做,循环100次进行赋值?有没有更好的方法?... 假如 int arr[100];我想把arr数组里的100项都初始化为1.怎么做?难道只能用循环来做,循环100次进行赋值?有没有更好的方法? 展开
 我来答
幻翼高达Zero
2019-07-19 · TA获得超过1.7万个赞
知道答主
回答量:499
采纳率:0%
帮助的人:7.4万
展开全部

需要准备的材料分别有:电脑、C语言编译器

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:

int a[3];

memset(a, 0, sizeof(a));

printf("%d", a[0]);

printf("%d", a[1]);

printf("%d", a[2]);

3、编译器运行test.cpp文件,此时成功将数组每一项都初始化为0。

吉祥二进制
高粉答主

推荐于2018-04-14 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84565

向TA提问 私信TA
展开全部
举例说明:
int a[20] = {0};
这样,数组a中的每一个元素都被初始化为0了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mr_wizard_P
推荐于2017-10-03 · 超过15用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:48.9万
展开全部
或许你可以调用用memset()函数试试,例如:memset(arr,0,sizeof(arr));
不过memset这是对每个字节赋值,所以只能是赋0或者-1,别的话只能用循环了
追问

这个不行,memset用来设置char型的还是可以,但int型是不行的。你看看吧

追答
嗯,整型是不行的,之前说了memset是对每个字节赋值,int型有4个字节,每个字节都赋个1的话,转换成十进制就不是我们想要的了,用在char型数组倒很好用
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s58417632
2012-11-23 · TA获得超过299个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:162万
展开全部
申请一个struct template{ int i = 1;}; typedef struct template tem_t; struct tem_t arr[100];就搞定了。
追问
这个不行,首先语法就有错误,不能通过编译,struct template{ int i = 1;};C语言里结构体不是这样写的,结构体里的变量不能赋值。
追答
只是提供类似的一个思想,呵呵。
你采纳的那个才是正解,一句memset就搞定了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
士兄扬羽
2012-11-23 · 超过11用户采纳过TA的回答
知道答主
回答量:77
采纳率:0%
帮助的人:38.4万
展开全部
#include "Stdio.h"
#include "Conio.h"
int main(void)
{
int i,a[100]={1};
for(i=0;i<=99;i++)
a[i]=1;
for(i=0;i<=99;i++)
{
if(i%5==0)printf("\n") ;
printf("%d\t",a[i]);
}
getch();
return 0;
}

个人感觉就只有用循环才能做。。。不知道别人有好方法吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式