level 1
#include"stdio.h"void main(){int a[5];int *p;inti,j;printf("请输入5个整数:");p=a;for(i=0;i<=4;i++){scanf("%d",p+i);}printf("输入你要找的数字:");scanf("%d",&j);for(i=0;i<=4;i++){if(j==*(p+i))printf("该数下标为:%d\n",i);elseprintf("没有这个数\n");break;}}除了第一个数的下标,其他的都找不到
2007年07月31日 13点07分
1
level 0
第一轮循环if语句为假的话,就会到else语句,运行到break就跳出循环了,还怎么查找输入的数?break;去掉就行了,试试吧!
2007年07月31日 14点07分
3
level 0
怎么会呢?if条件成立,也就是j==*(p+i)时,后面的printf才会输出.
2007年07月31日 14点07分
5
level 0
for(i=0;i<=5;i++){if(j==*(p+i))printf("该数下标为:%d\n",i);else if(i==5)printf("没有这个数\n");
2007年07月31日 14点07分
6
level 0
总之,把BREAK去掉,把else到break全删掉也行.
2007年07月31日 14点07分
7
level 0
6楼正解,认真看看吧.楼主您还没把if和for循环的概念弄明白,加油噢!
2007年07月31日 14点07分
8
level 0
6楼正解,认真看看吧.楼主您还没把if和for循环的概念弄明白,加油噢!
2007年07月31日 14点07分
9
level 0
for(i=0;i<=5;i++){if(i==5)printf("没有这个数\n");else if(j==*(p+i)){printf("该数下标为:%d\n",i);break;}}
2007年07月31日 14点07分
10