以下是引用liphouse在2013-5-16 23:26:23的发言:
大概是我提的问题不准确.上文中的程序是能正常输出的.但如果把数组定义为无界数组,就会出现问题.
即将有注释部分的语句,改为:int i,sh[]={0};运行后就会出现乱码和异常提示.
另外对四楼做出解释.首先说下我是个新手,只是在工作中需要用到,就现上轿现扎耳朵眼.对于C语言了解不多,动态数组还不会用,指针也只有初步的印象.只感觉这样定义好像比较简单.
这个题目的要求是,求与一个自然数的相邻的两个自然数.为了完成这个练习并节省时间,所以我想一次性输入多个数据.存入数组A中,分别做+1和-1操作,得到的值不能有负数.并把所有运算得出的结果赋予新数组B并输出.而原数组A的数字是由使用者输入得到的,0是否输入是无法预定的.那么新数组B长度就会不确定.如果是与其相邻的偶数/奇数,那么也会出现这种问题.
是不是我的思路有问题?
请各位大神指点,或给个动态数组的例子借鉴下.
明白了..其实只需要一个变量和一个一维数组就行了啊
scanf一次只读一个数..
在一个循环中每次读一个数,处理完后再读下一个数继续处理
程序代码:
printf("输入数字:\n");
while(scanf("%d", &num) == 1)
{
if(num <= 0) continue; /*得到的值不能有负数*/
a[0] = num - 1;
a[1] = num + 1;
//得到结果了..输出也可以..如果保存的话..还没想好该怎么办..或者写入一个文件...
while(getchar() != '\n')
continue;
}