c语言数组运算
来源:百度知道 编辑:UC知道 时间:2024/05/30 07:31:29
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 20 //定义数组长度
int main()
{
int array[N] = {33,44,22,0,77,534,23,6576,5354,443,735,752,
2346,6431,8765,4764,234,5435,34241,23};
int iCounter ;
printf("本程序存在异常:\n");
iCounter = N;
while( iCounter > 1 )
{
printf(" array[%d] / array[%d] = %d\n",iCounter,iCounter-1, array[iCounter] / array[iCounter-1]);
iCounter--;//iCounter自减1
}
return 0;
}
C语言中数组下标昌从0开始计的,到n-1结束。
你那引用了n,超过了最大下标值,n-1;
你要先n--,这样就是指向数组最后一个值,才会正确。
iCounter = N;
while( iCounter > 1 )
{
iCounter--;//iCounter自减1
printf(" array[%d] / array[%d] = %d\n",iCounter,iCounter-1, array[iCounter] / array[iCounter-1]);
}
#include <stdio.h>#include <stdlib.h>#include <math.h>#define N 20 //定义数组长度int main(){int array[N] = {33,44,22,0,77,534,23,6576,5354,443,735,752,2346,6431,8765,4764,234,5435,34241,23};int iCounter ;iCounter = N-1;/*该行被修改。定义的数组array有n个元素,这n个元素分别是array[0]到array[n-1]。这也就意味着array[0]引用的是第一个元素,而array[n-1]引用的是第n个元素,这是C语言和其他编程语言的不同点,请注意*/while( iCounter > 0/*此处被修改*/ ){printf(" array[%d] / array[%d] = %d\n",iCounter,iCounter-1, array[iCounter] / array[iCounter-1]);iCounter--;//iCounter自减1}return 0;}