这是在10个数组表中进行线性搜索代码,顺便说一句,它必须在do-while或while循环中,而不是for循环中。
#include <stdio.h>
#include <stdlib.h>
int
search(int t[], int x, int n)
{
int i;
i == 0;
do {
i = i + 1;
} while ((t[i] != x) || (n > i));
if (t[i] == x) {
printf("index=%d", i + 1);
}
else {
printf("element not found");
}
}
int
main()
{
int t[10];
int x, i;
printf("enter x: ");
scanf("%d", &x);
for (i = 0; i < 10; i++) {
printf("enter table element : ");
scanf("%d", &t[i]);
}
search(t, x, 10);
return 0;
}
我希望得到表中指定数字(x)的索引,但问题是结果是错误的(它显示3位数字),有时根本不会显示任何内容
1条答案
按热度按时间fhity93d1#
这行代码没有任何作用。==是比较运算符
相反,您应该使用assignemnt运算符:
我稍微修改了你的代码,使它工作。请注意scanf函数中的格式字符串,这很重要。请阅读文章scanf() leaves the newline character in the buffer