C和C++中字符数组和布尔型bool问题和Java输入

来源:互联网 发布:东华网络教育平台 编辑:程序博客网 时间:2024/05/16 08:49

在这次做ACM北京大学在线系统的1989题时,遇到了很多问题。

首先,是C和C++数组清零的问题。可以使用memset(v,0,sizeof(v));将数组在初始化,此处因为我们要用的是bool型数组,所以,要清空。

在就是C语言中没有布尔型bool,所以,他的判断是0就是假false,其他的就是真true;

在就是C++语言中布尔型,定义了,要初始化,可以初始化为true,也可以初始化为false.不然,就不能编译了。C++中布尔型初始化还是可以同样使用memset(v,true,sizeof(v));初始化为true;

最让人头疼的是Java中数组的输入,和其他的输入问题:

下面这个小程序可以输入一组数据。但是是以ASCII码形式输出的。弄了很久也没有找到怎么转换,强行转换,会掉一些数据的,比如,有5个数,但是你强行转换后,输出只有前三个数了。

Java中输入数据一个一个的输,要有提示,是很好输的,可是连续输入数据,还真的有点难。希望大家给点建议。


import java.io.*;
public class test1 {
 public static void main(String []args) throws IOException
 {
  int[] my = new int[5];
  BufferedInputStream br = new BufferedInputStream(System.in);
  for(int i=0;i<=my.length-1;i++)
  {
   my[i]=br.read();}
  for(int j=0;j<=my.length-1;j++)
  {
   System.out.println(my[j]);
  }
 }
}

/*输入一个数组,比如输入为1 2 3 4 5
 *但是输出是ASCII码。为49 32 50 32 51.
 *还不会将其转换为Int型
 *
 **/