c语言数组运算

来源:百度知道 编辑:UC知道 时间:2024/05/30 07:31:29
#include <stdio.h>
#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; }