{ "question_id": 720288, "question_title": "找x", "question_content": "题目描述\n输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。\n输入\n测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。\n输出\n对于每组输入,请输出结果。\n样例输入\n4\n1 2 3 4\n3\n样例输出\n2\n", "difficulty": "困难", "answer_id": 714710, "answer_content": "折半查找是不行的,折半查找有一个前提那就是:数组的数必须有序,不然效率低的可怜。下面我写的,比较简单,什么也没做处理,你要的功能基本实现,根据这个改下吧\n\n#include \n\nusing namespace std;\n\nint main() {\n\tint n = 0;\n\tcin >> n;\n\n\tint* ptr = new(nothrow) int[n];\n\tfor (auto i = 0; i < n; i++) {\n\t\tcin >> ptr[i];\n\t}\n\n\tint x = 0;\n\tcin >> x;\n\n\tauto j = 0;\n\tauto status = 0;\n\tfor (; j < n; ++j) {\n\t\tif (ptr[j] == x) {\n\t\t\tstatus = 1;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (status == 0) {\n\t\tj = -1;\n\t}\n\tcout << j << endl;\n\t\n\tdelete[] ptr;\n\n\tcin.get();\n\tcin.get();\n\n\treturn 0;\n}\n```\n\n```", "tag_name": "c语言", "cpp": "#include \nusing namespace std;\nint main() {\n\tint n = 0;\n\tcin >> n;\n\tint* ptr = new(nothrow) int[n];\n\tfor (auto i = 0; i < n; i++) {\n\t\tcin >> ptr[i];\n\t}\n\tint x = 0;\n\tcin >> x;\n\tauto j = 0;\n\tauto status = 0;\n\tfor (; j < n; ++j) {\n\t\tif (ptr[j] == x) {\n\t\t\tstatus = 1;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (status == 0) {\n\t\tj = -1;\n\t}\n\tcout << j << endl;\n\tdelete[] ptr;\n\tcin.get();\n\tcin.get();\n\treturn 0;\n}", "topic_link": "https://bbs.csdn.net/topics/600470177", "status": 1, "keywords": "算法初阶,基础知识,分治策略,最大子数组问题", "license": "csdn.net", "notebook": { "cpp": "https://codechina.csdn.net/csdn/csdn-daily-code/-/jupyter/master/data/notebook/answer/ipynb/cpp/108.ipynb?type=file" }, "notebook_enable": 1, "author": "csdn.net" }