搜索数组不提供适当的输出

时间:2016-12-10 17:44:11

标签: c arrays

我想在很长一段时间后练习 C 编程并陷入最基本的困境。尝试使用while循环搜索一个正常工作的数组,但是当尝试使用For循环时,我没有得到实际的输出。这是我尝试过的代码并且工作得很好:

#include<stdio.h>
int main()
{
    int arr[100], element, num, i;
    int cnt = 1;

    printf("Enter no of elements: ");
    scanf("%d", &num);

    printf("\nEnter the values: ");
    for(i = 0; i < num; i++)
    {
        scanf("%d", &arr[i]);
    }

    printf("\nEnter the element to be searched: ");
    scanf("%d", &element);

    for(i = 0; i < num; i++)
    {
        if(arr[i] == element)
        {
           printf("\nNumber found at the index = %d", i + 1);
        }
        else
        {
            /**To prevent repeated output but trying to remove this section - Starts**/
            if(cnt == 1)
            {
               printf("\nNumber not found");
            }
            cnt += 2;
            /**To prevent repeated output but trying to remove this section - Ends**/
        }
    }
    return 0;
}

问题是当搜索到的值匹配时,它会获得匹配值的索引,并打印消息'Number not found'。但如果没有值匹配,则只返回'未找到号码'。以下是我为搜索值获得的输出:

array_search

2 个答案:

答案 0 :(得分:1)

或者你可以简单地做

    if(arr[i] == element)
    {
       printf("\nNumber found at the index = %d", i + 1);
       cnt = 0;
       break;
    }

删除else部分,然后在for循环之后,检查cnt是否仍为1。 如果仍然是1,则打印未找到。

答案 1 :(得分:1)

固定程序是:

if let url = NSBundle.mainBundle().urlForResource("Computer", withExtension: "plist") {
...
let data = try NSData(contentsOfURL:url)
let emojiArray = try NSPropertyListSerialization.propertyListFromData(data, options: [], format: nil) as! [[String:AnyObject]]

输出:

#include<stdio.h>
int main()
{
    int arr[100], element, num, i;
    int cnt = 1;

    printf("Enter no of elements: ");
    scanf("%d", &num);

    printf("\nEnter the values: ");
    for(i = 0; i < num; i++)
    {
        scanf("%d", &arr[i]);
    }

    printf("\nEnter the element to be searched: ");
    scanf("%d", &element);

    for(i = 0; i < num; i++)
    {
        if(arr[i] == element)
        {
           printf("\nNumber found at the index = %d", i + 1);
           cnt=0;
           break; //break the loop
        }
    }
    if(cnt==1){
        printf("\nNumber not found");   
    }
    return 0;
}

当找到数字时,使cnt = 0并打破循环;在循环之后,您可以检查cnt的值是否仍为1表示未找到数字。