A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 指尖舞者 中级黑马   /  2014-6-30 07:46  /  1568 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 指尖舞者 于 2014-7-1 09:39 编辑

题目:重组一个int数组,让该数组元素,若为正则值+1,为负则值-1,为零则不变。

  1. int[] integer = { 10, 22, 45, -7, 0,54, 99, -88, -25 };

  2. Console.WriteLine("新数组为a");

  3. for (int i = 0; i < integer.Length; i++)      //for循环可以无视,没有问题

  4. {

  5. if (integer[i] > 0)

  6. {

  7. integer[i] += 1;

  8. }

  9. else if (integer[i] == 0)

  10. {

  11. }

  12. else

  13. {

  14. integer[i] -= 1;

  15. }

  16. Console.Write(integer[i]+" ");         //正常结果

  17. //Console.Write(integer[i]+','+" "); //这里出问题了

  18. }

  19. Console.WriteLine();

  20. Console.ReadKey();</P>
复制代码




输出的时候,本来想让每个元素之间有个逗号间隔,就用了 如备注的语句 但是输出结果完全两样了





2.jpg (8.96 KB, 下载次数: 28)

异常输出结果

异常输出结果

1.jpg (9.69 KB, 下载次数: 38)

正确输出结果

正确输出结果

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

12 个回复

倒序浏览
本帖最后由 dugubaitian 于 2014-6-30 14:07 编辑

你好!  你这个错误是这样的: Console.Write(integer+','+" ");  把单引号换成双引号,因为+是字符串的连接,写成‘,’就相当于interger+','进行算术运算,因为+只是累加字符串的,其他的系统默认的就是计算了像这道题,‘,’转换成int数是44(自己可以调试试一下),    所以改成“,”就好了!!  希望可以帮助到你                      你可以自己进行试验下  int  i=(int)'',;看一下i的值就会看见是44了。   

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
单引换双引,  就楼上所说的
回复 使用道具 举报
一楼很强大呦。。试试改成“,”果然如此
回复 使用道具 举报 1 0
那么把数组的元素 ToString 一下是不是也可以的
回复 使用道具 举报
这个
//Console.Write(integer[i]+','+" "); //这里出问题了       确实出问题了
改成    “+”   
你试试

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
本帖最后由 指尖舞者 于 2014-6-30 12:40 编辑
天佑の清清 发表于 2014-6-30 11:21
这个
//Console.Write(integer+','+" "); //这里出问题了       确实出问题了
改成    “+”   


我那中间有个空格的  是间隔一下而已  我主要是多加了个“,”  然后出问题了

应该是1楼说的那样  单引号问题 我回去试试
回复 使用道具 举报
dugubaitian 发表于 2014-6-30 09:43
你好!  你这个错误是这样的: Console.Write(integer+','+" ");  把单引号换成双引号,因为+是字符串的连 ...

soga  貌似还很是  我回去试试
回复 使用道具 举报
指尖舞者 发表于 2014-6-30 12:34
soga  貌似还很是  我回去试试

嗯  你可以自己实验下  int i=(int)',';看下i的值,就会看见是44了   其实系统把这的+当作算数运算符来看了  如果写成“,”,这表示的是字符串,C#语言中,+两边如果有一项是字符串的话+就会被当作连接符来用了   否则当作算数运算符用!!
回复 使用道具 举报
当有人给你回复后,请及时把帖子编辑为提问结束,这样版主才给你加技术分
回复 使用道具 举报
czwanglei 发表于 2014-7-1 01:04
当有人给你回复后,请及时把帖子编辑为提问结束,这样版主才给你加技术分 ...

我知道 但是要等我验证了 回答的是否解决问题 我才来结束  我们又不是走形式  对吧
回复 使用道具 举报
dugubaitian 发表于 2014-6-30 14:17
嗯  你可以自己实验下  int i=(int)',';看下i的值,就会看见是44了   其实系统把这的+当作算数运算符来看 ...

嗯 好了昨天回去试了  可以  这就结束提问了  多谢
回复 使用道具 举报
学习了!呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马