C++中,怎么求整型数组的实际长度?
以下面的代码为例:inta[20];cin>>a[20];//在这个代码中,假设我只输入了6个数字,请问下我要怎么求得数组a的实际长度呢PS:用intlen=sizeof...
以下面的代码为例:
int a[20];
cin>>a[20];
//在这个代码中,假设我只输入了6个数字,请问下我要怎么求得数组a的实际长度呢
PS:用int len=sizeof(a)/sizeof(int)求得的值还是20
谢谢网友的提醒!
换个角度,我在不知道实际会输入多少个数字的前提下(n<20),要怎么输入数字才能知道数组的实际长度呢? 展开
int a[20];
cin>>a[20];
//在这个代码中,假设我只输入了6个数字,请问下我要怎么求得数组a的实际长度呢
PS:用int len=sizeof(a)/sizeof(int)求得的值还是20
谢谢网友的提醒!
换个角度,我在不知道实际会输入多少个数字的前提下(n<20),要怎么输入数字才能知道数组的实际长度呢? 展开
5个回答
展开全部
首先,cin>>a[20]; 这样是不行的。这样写相当于只输入数组的第21个数,超出了数组的最大范围了。20个数据的数组,最大下标是19
其次,数组定义的时候,如果 没有赋初值,那么系统会自动给所有数组元素自动赋值0
再次,想要求数组长度可以这样:
int a[20];
int len;
len = sizeof(a);
这样求出来的值会是80,因为int数据占4字节,20个就是80字节
数组的长度和你是否输入数组的值无关,反正定义时没给初值就自动赋值0的
只要是int型的数组,每个元素都是4字节。
其次,数组定义的时候,如果 没有赋初值,那么系统会自动给所有数组元素自动赋值0
再次,想要求数组长度可以这样:
int a[20];
int len;
len = sizeof(a);
这样求出来的值会是80,因为int数据占4字节,20个就是80字节
数组的长度和你是否输入数组的值无关,反正定义时没给初值就自动赋值0的
只要是int型的数组,每个元素都是4字节。
追问
比如题目是:
输入2个输入文本(n<20)
1 2 3 4 5
1 2 3 4 5 6
求用户键入的数字有多少
我的代码定义一个int a[20],
请问下我应该怎么编写这个程序呢
追答
建议你用字符串来存输入的文本 string
然后遍历字符串,统计数字个数
展开全部
这个 你可以定义一个 int nSzie= 0;
每插入一个数nSzie+1;
或者自己写一个函数,遍历一下数组,就可以得到其大小。
每插入一个数nSzie+1;
或者自己写一个函数,遍历一下数组,就可以得到其大小。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先整型数组不能这样输入:
int a[20];
cin>>a[20];
所以,你这个问题的前提就不对了。首先你应该知道输入多少个整数,循环获得输入。
int a[20];
cin>>a[20];
所以,你这个问题的前提就不对了。首先你应该知道输入多少个整数,循环获得输入。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实,你看一下下面这段代码,可以求出整形数组的实际长度
#include<iostream>
using namespace std;
int main()
{
int length = 1;
int a[10] = { 0 };
a[0] = 1;
a[1] = 2;
for (int i = 1; i < 10; i++)
{
if (a[i])
length += 1;
}
cout << length << endl;
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int length = 1;
int a[10] = { 0 };
a[0] = 1;
a[1] = 2;
for (int i = 1; i < 10; i++)
{
if (a[i])
length += 1;
}
cout << length << endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不行吧,还没发现有什么办法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询