黑马程序员技术交流社区
标题:
一觉醒来,解决了一个利用do while给数组赋值的问题...
[打印本页]
作者:
cuin
时间:
2015-6-27 10:17
标题:
一觉醒来,解决了一个利用do while给数组赋值的问题...
本帖最后由 cuin 于 2015-6-27 10:19 编辑
昨天做练习,写出的程序怎么也打不到效果,总是提前结束,一觉醒来忽然灵光一闪,解决了:L,原来我在while里面写的是while (number!=0),但是在do里面执行了++之后,number
实际代表了最后一次输入的下一位,也就是一个垃圾数。所以执行不出正确结果!希望大家也引以为戒,下面是改正后的代码
#include <stdio.h>
int main(int argc, const char * argv[]) {
int number[]={};
int i=0;
printf("请输入一串数字,并以0结尾\n");
do{
scanf("%d",&number[i]);
i++;
//如果定义时候未赋初值,数组里面会存储一些垃圾数,垃圾数里面包含了0
//如果最后输入的数字为0,才结束循环,由于上一步执行了++操作,所以判断条件变成了i-1
}while (number[i-1]!=0);
//输出数组中的值
for(int j=0;j<i;j++){
printf("number[%d]=%d\n",j,number[j]);
}
return 0;
}
复制代码
作者:
timehzy
时间:
2015-6-27 10:26
赞一个,上厕所、睡觉都是解bug的必备技能
作者:
小小羊
时间:
2015-6-27 21:22
是啊,这个要很好利用
作者:
张国繁
时间:
2015-6-27 22:34
学习了!这样也可以啊
作者:
马贺飞
时间:
2015-6-29 00:15
梦里竟然都在学习
作者:
zhanghao2744491
时间:
2015-6-29 03:42
那你就天天睡觉就可以了啊
作者:
赵云18235802528
时间:
2015-6-29 07:46
赞一个,赞一个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2