第1个回答 2013-07-06
对于数组而言,大部分语言中,数组的下标都是从0开始的,因此:
定义 int a[9]; 则,其最大下标为8(0,1,2, 3,4,5, 6,7,8)
所以,上面代码肯定会越界,因为 最大时,下标为9了
第2个回答 推荐于2018-04-13
怎么没有越界,你定义int a[9]这样数组a只包含9个元素,而你循环却是10次,这样最后一次是越界的。注意定义的时候,指定的是数组大小,而不是数组的下标上限。本回答被网友采纳
第3个回答 2019-10-21
#include
<stdio.h>#include<conio.h>
void
main
(void){
int
a[10]; int
i,count=0; for(i=0;i<=10;i++) {
scanf("%d",&a[i]); } for(i=0;i<=10;i++)
if(((i%2)==1)&&((a[i]%2)==1))
{printf("a[%d]=%d\n",i,a[i]);
count++;
} printf("count=%d\n",count);
}正确程序如上,还有不要再scanf的%d后加空格,这样的话对你的读入方式会产生影响,希望对你有用·····
第4个回答 2013-07-06
#include <stdio.h>
#include<conio.h>
void main (void)
{
int a[10];
int i,count=0;
for(i=0;i<=10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<=10;i++)
if(((i%2)==1)&&((a[i]%2)==1))
{printf("a[%d]=%d\n",i,a[i]);<br/> count++;<br/> }
printf("count=%d\n",count);
}
正确程序如上,还有不要再scanf的%d后加空格,这样的话对你的读入方式会产生影响,希望对你有用·····
第5个回答 2020-03-16
#include
<stdio.h>
#include<conio.h>
void
main
(void)
{
int
a[10];
int
i,count=0;
for(i=0;i<=10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<=10;i++)
if(((i%2)==1)&&((a[i]%2)==1))
{printf("a[%d]=%d\n",i,a[i]);<br/>
count++;<br/>
}
printf("count=%d\n",count);
}
正确程序如上,还有不要再scanf的%d后加空格,这样的话对你的读入方式会产生影响,希望对你有用·····