祝余呀 2024-03-23 15:27 采纳率: 100%
浏览 5
已结题

我想请问一下为什么我的代码运行结果不正确?

img


程序是在给定数据中查找一个数据是否存在,但是我的运行结果是错误的,我想问一下哪里出错了并且如何修改

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-03-23 15:27
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    根据你提供的图片,代码的目的是在一个整数数组中查找特定值(search_num)并返回其索引,如果找不到则返回-1。看起来你的代码有一个小错误,即在循环条件中使用了错误的变量。你使用了i而不是j来检查是否到达数组的末尾。

    下面是修正后的代码:

    #include <stdio.h>
    
    int search(int arr[], int size, int search_num) {
        for (int j = 0; j < size; j++) { // 使用 j 而不是 i
            if (arr[j] == search_num) {
                return j;
            }
        }
        return -1;
    }
    
    int main() {
        int data[] = {1, 2, 3, 4, 5};
        int size = sizeof(data) / sizeof(data[0]);
        int num_to_find = 6;
    
        int result = search(data, size, num_to_find);
        printf("Index is: %d\n", result);
    
        return 0;
    }
    

    在原始代码中,for (int i = 0; i < size; i++) 是用于遍历数组的,但在循环内部,你应该使用 arr[j] 而不是 arr[i]。我已经修正了这个问题。现在,这段代码将正确地遍历数组并查找指定的数值。如果找到,它会返回该值的索引;否则,返回-1。在这个例子中,因为数组中没有值为6的元素,所以输出应该是 "Index is: -1"。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月31日
  • 已采纳回答 3月23日
  • 创建了问题 3月23日