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

本文探讨了ACM北京大学在线系统1989题的解决过程,重点介绍了C/C++中数组初始化的方法,包括使用memset进行清零及初始化为true的过程,并讨论了Java中数组输入与ASCII码转换的问题。

在这次做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型
 *
 **/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值