c++中数组输出的问题 15
#include"iostream.h"#include"stdio.h"intmain(){inti=0,j;inta[10];cout<<"pleaseinputar...
#include"iostream.h"
#include"stdio.h"
int main()
{int i=0,j;
int a[10];
cout<<"please input array a[]:"<<endl;
for(i=0;i<10;i++)
cin>>a[i];
cout<<"array a is:"<<endl;
for(j=0;j<10;j++)
cout<<a[j]<<' ';
system("pause");
}
1:上面的程序,数组A原定有10个,我现在只输入了5个,现在输出时会出现前面5个正常,后面应该不显示了,但出来一些很大的数字,如何只显示输入的。
2:一数组未满,现在想用B来返回现在数组里面有几个数。
谢谢。 展开
#include"stdio.h"
int main()
{int i=0,j;
int a[10];
cout<<"please input array a[]:"<<endl;
for(i=0;i<10;i++)
cin>>a[i];
cout<<"array a is:"<<endl;
for(j=0;j<10;j++)
cout<<a[j]<<' ';
system("pause");
}
1:上面的程序,数组A原定有10个,我现在只输入了5个,现在输出时会出现前面5个正常,后面应该不显示了,但出来一些很大的数字,如何只显示输入的。
2:一数组未满,现在想用B来返回现在数组里面有几个数。
谢谢。 展开
11个回答
展开全部
字符数组末尾缺一个'\0'
'\0'标志着字符串结束,它的值是0,它不是空格。当输出字符数组或字符指针时,依次输出各个字符,遇到'\0'时结束。
abcde后面的内存空间存的数是乱七八糟的,也有0,所以输出一些”乱码“后才停止输出。
这样就没问题了:
char a[6]={'a','b','c','d','e','\0'};或者不要去数字符个数
char a[]={'a','b','c','d','e','\0'};或者直接用字符串来初始化更加容易
char a[]="abcde";
'\0'标志着字符串结束,它的值是0,它不是空格。当输出字符数组或字符指针时,依次输出各个字符,遇到'\0'时结束。
abcde后面的内存空间存的数是乱七八糟的,也有0,所以输出一些”乱码“后才停止输出。
这样就没问题了:
char a[6]={'a','b','c','d','e','\0'};或者不要去数字符个数
char a[]={'a','b','c','d','e','\0'};或者直接用字符串来初始化更加容易
char a[]="abcde";
展开全部
1.你的数组是未初始化的,只输入5个数,后5个是随机的数,你可以把数据设定初始值,如0或
-1什么的,表示没有输入。
for(i=0;i<10;i++)
a[i]:=0;
在输出时,遇到初始值,既表示该数未输入,所设定的初始值一定要是你不会输入的。
2、如果你设定了初始值,计算一下有几个数不是初始值,就可以得到数组里有几个数。
-1什么的,表示没有输入。
for(i=0;i<10;i++)
a[i]:=0;
在输出时,遇到初始值,既表示该数未输入,所设定的初始值一定要是你不会输入的。
2、如果你设定了初始值,计算一下有几个数不是初始值,就可以得到数组里有几个数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 C语言不检查数组溢出
如果你做了溢出操作 那么就会意外修改自己的数据 或者让程序崩溃
后面的很大的数字是你在定义int变量时候获得的内存里的原有数据
是想一块内存被其他程序使用以后释放 如果系统把内存里的内容恢复成0
那么就会消耗资源 但是其他的程序在使用这块内存的时候却有自己的初始值
比如int a=3;这时候系统资源就浪费了
所以在释放内存的时候系统没有把内存清零,同时在获得内存的时候如果没有初始化,那么变量里的值将是无法预知的
输出来的很大的值是由于你没有赋值造成的,是该内存块里原有的值
只显示输出的你就需要用一个变量n来描述到底输入了多少值
输出时使用
for(j=0;j<n;j++)
cout<<a[j]<<' ';
2 无法知道数组里面有多少数已经被赋值,除非你在赋值的时候记录下来
只能知道数组有多大容量
如果你做了溢出操作 那么就会意外修改自己的数据 或者让程序崩溃
后面的很大的数字是你在定义int变量时候获得的内存里的原有数据
是想一块内存被其他程序使用以后释放 如果系统把内存里的内容恢复成0
那么就会消耗资源 但是其他的程序在使用这块内存的时候却有自己的初始值
比如int a=3;这时候系统资源就浪费了
所以在释放内存的时候系统没有把内存清零,同时在获得内存的时候如果没有初始化,那么变量里的值将是无法预知的
输出来的很大的值是由于你没有赋值造成的,是该内存块里原有的值
只显示输出的你就需要用一个变量n来描述到底输入了多少值
输出时使用
for(j=0;j<n;j++)
cout<<a[j]<<' ';
2 无法知道数组里面有多少数已经被赋值,除非你在赋值的时候记录下来
只能知道数组有多大容量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两种方法
用字符数组或者字符串接受输入 设循环控制变量计数
判断 当输入非数字字符的时候 跳出循环 看控制变量就知道输入多少个数了
缺点 当输入数字超过一位 转换成INT的时候比较啰嗦
另外 while(cin>>a[i++]) 不想输入的时候 ctrl+d
缺点是 之后都不能输入了
用字符数组或者字符串接受输入 设循环控制变量计数
判断 当输入非数字字符的时候 跳出循环 看控制变量就知道输入多少个数了
缺点 当输入数字超过一位 转换成INT的时候比较啰嗦
另外 while(cin>>a[i++]) 不想输入的时候 ctrl+d
缺点是 之后都不能输入了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.你的数组是未初始化的,只输入5个数,后5个是随机的数,你可以把数据设定初始值,如0或 -1什么的,表示没有输入。
for(i=0;i<10;i++)
a[i]:=0;
在输出时,遇到初始值,既表示该数未输入,所设定的初始值一定要是你不会输入的。
2、如果你设定了初始值,计算一下有几个数不是初始值,就可以得到数组里有几个数。
for(i=0;i<10;i++)
a[i]:=0;
在输出时,遇到初始值,既表示该数未输入,所设定的初始值一定要是你不会输入的。
2、如果你设定了初始值,计算一下有几个数不是初始值,就可以得到数组里有几个数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |