為什么輸入不在數(shù)組中的數(shù)字也能通過if(arr[i]==value)
#include <stdio.h>
int getIndex(int arr[5],int value)
{
??? int i;
??? int index;
?? ?
??? for(i=0;i<5;i++)
??? {
?????? /* 請(qǐng)完善數(shù)組查詢功能 */
??????? if(arr[i] == value){
?????????? index = i;
?????????? break;
??????? }
??? }
??? return index;
}
int main()
{
??? int arr[5]={3,12,9,8,6};
??? int value = 7;
??? int index = getIndex(arr, value);????? //這里應(yīng)該傳什么參數(shù)呢?
??? if(index!=-1)
??? {? ?
??????? printf("%d在數(shù)組中存在,下標(biāo)為:%d\n",value,index);
??? }
??? else
??? {
??????? printf("%d在數(shù)組中不存在。\n",value);?? ?
??? }
??? return 0;?? ?
}
2021-01-09
這個(gè)應(yīng)該是設(shè)計(jì)題目的時(shí)候沒改回來的一個(gè)bug??粗骱瘮?shù)里面輸出不存在提示語的情況是返回值index!=-1,但是在子函數(shù)里面并沒有定義index的值,也就是說我們不知道index是什么值,對(duì)于不在數(shù)組內(nèi)的數(shù)字確實(shí)是沒有通過if語句,但是由于不通過if語句,函數(shù)的返回值依然不是-1,所以最后給出的提示就是存在。(第一次給人講代碼耶,我說明白了嗎?)