如果在数组中找不到键,则尝试添加错误消息
Trying to add error message in case key not found in array
我正在编写一段相当琐碎的代码;我正在尝试添加一条错误消息,用于在数组中搜索特定键。 (不是字面意义上的错误消息,只是一条打印语句,说明 key / searched int 不在数组中。)
下面是我为它写的函数和驱动代码
#include <stdio.h>
size_t find_element(size_t len, int arr[len], int key)
{
size_t pos = (size_t)-1;
for (size_t i = 0; i < len; ++i)
{
if (arr[i] == key)
{
pos = i;
break;
}
}
return pos;
}
int main(void)
{
size_t len = 7;
int arr[] = {0, 1, 2, 3, 4, 5, 6};
int key = 5;
printf("IDX: %zu ", find_element(len, arr, key));
return 0;
}
如您所见,find_element returns 所需键在数组中的位置。但是,如果找不到密钥,我无法打印出错误消息。
我想在输出中实现的是:
'Key not in the array'
扫描整个阵列后,显示错误信息。
到目前为止,我已经尝试了以下操作:
else
{
pos = i;
printf("%zu is not the correct Index! \n", pos);
continue;
}
这绝对行不通,因为它只是告诉用户哪些索引不正确。
我也试过 goto FAIL 语句,但也不是。
我怀疑我必须以其他方式使用 continue 语句,但不知道如何实现它。
你最初可以将-1赋值给pos。如果找不到密钥,它将保持为 -1 .
int find_element(size_t len, int arr[len], int key)
{
int pos = -1;
for (size_t i = 0; i < len; ++i)
{
if (arr[i] == key)
{
pos = i;
break;
}
}
return pos;
}
如果函数returns -1,表示没有找到key,否则函数会return key的index.
int main(void)
{
size_t len = 7;
int arr[] = {0, 1, 2, 3, 4, 5, 6};
int key = 5;
int result = find_element(len, arr, key);
if(result==-1){
printf("Key not in the array");
}
else{
printf("IDX: %d ", result);
}
return 0;
}
我正在编写一段相当琐碎的代码;我正在尝试添加一条错误消息,用于在数组中搜索特定键。 (不是字面意义上的错误消息,只是一条打印语句,说明 key / searched int 不在数组中。)
下面是我为它写的函数和驱动代码
#include <stdio.h>
size_t find_element(size_t len, int arr[len], int key)
{
size_t pos = (size_t)-1;
for (size_t i = 0; i < len; ++i)
{
if (arr[i] == key)
{
pos = i;
break;
}
}
return pos;
}
int main(void)
{
size_t len = 7;
int arr[] = {0, 1, 2, 3, 4, 5, 6};
int key = 5;
printf("IDX: %zu ", find_element(len, arr, key));
return 0;
}
如您所见,find_element returns 所需键在数组中的位置。但是,如果找不到密钥,我无法打印出错误消息。
我想在输出中实现的是:
'Key not in the array'
扫描整个阵列后,显示错误信息。
到目前为止,我已经尝试了以下操作:
else
{
pos = i;
printf("%zu is not the correct Index! \n", pos);
continue;
}
这绝对行不通,因为它只是告诉用户哪些索引不正确。
我也试过 goto FAIL 语句,但也不是。
我怀疑我必须以其他方式使用 continue 语句,但不知道如何实现它。
你最初可以将-1赋值给pos。如果找不到密钥,它将保持为 -1 .
int find_element(size_t len, int arr[len], int key)
{
int pos = -1;
for (size_t i = 0; i < len; ++i)
{
if (arr[i] == key)
{
pos = i;
break;
}
}
return pos;
}
如果函数returns -1,表示没有找到key,否则函数会return key的index.
int main(void)
{
size_t len = 7;
int arr[] = {0, 1, 2, 3, 4, 5, 6};
int key = 5;
int result = find_element(len, arr, key);
if(result==-1){
printf("Key not in the array");
}
else{
printf("IDX: %d ", result);
}
return 0;
}