例7-3原题:
输入5个整数,将它们存入数组a中,再输入1个数x,然后在数组中查找x,如果找到,输出相应的最小下标,否则,输出“Not Found”。
课本给出源码及我的理解
#include<stdio.h>
int main()
{
int i,flag,x; //需要用到的量
int a[5]; //定义数组
printf("Enter 5 integers: "); //提示
for(i=0;i<5;i++)
scanf("%d",&a[i]); //输入五个数存入数组
printf("Enter x: ");
scanf("%d",&x); //输入目标数字
flag=0; //做个标记 flag=0
for(i=0;i<5;i++) //遍历数组
if(a[i]==x) //如果符合条件,执行以下语句
{
printf("Index is %d\n",i); //输出下标
flag=1; //改变标记
break; //停止遍历
}
if(flag==0) //若一直没找到目标数字,则 flag值不变
printf("Not Found\n");
return 0;
}
我写的代码及解释
#include<stdio.h>
int main()
{
int i,a[5]; //定义长度为5的数组
for(i=0;i<5;i++)
scanf("%d",&a[i]); //给数组赋值
int x,m=5; //给出最小值,令最小下标为5(本就不存在的一个下标)
scanf("%d",&x); //输入给定数字
for(i=0;i<5;i++) //遍历数组
{
if(a[i]==x&&i<=m) //加了一个条件,因为是最小下标
m=i;
}
if(m==5) //如果m还是初始时的5,就表示真的找不到给定数字
printf("Not Found\n");
else
printf("%d\n",m);
return 0;
}
有错请指正,感谢!