#include<stdio.h>
#define N 15
int main()
{
int i, number, top, bott, mid, a[N], flag = 1, sign, loca;
char c;
printf("enter data:\n");
scanf_s("%d", &a[0]);
i = 1;
while (i < N)
{
scanf_s("%d", &a[i]);
if (a[i] >= a[i - 1])
i++;
else
printf("enter this data again:\n");
}
printf("\n");
for (i = 0; i < N; i++)
printf("%5d", a[i]);
printf("\n");
while (flag)
{
top = 0;
bott = N - 1;
sign = 0;
printf("input number to look for:");
scanf_s("%d", &number);
if (number<a[0] || number>a[N - 1])
loca = -1;
while ((!sign) && (top <= bott))
{
mid = (top + bott) / 2;
if (number == a[mid])
{
loca = mid;
printf("Has found %d,its position is %d\n", number, loca + 1);
sign = 1;
}
else if (a[mid] < number)
top = mid+1;
else
bott = mid-1;
}
if (!sign || loca == -1)
printf("cannot find %d.\n", number);
printf("continue or not(Y/N)?");
scanf_s("%c", &c, 1);
if (c == 'n' || c == 'N')
flag = 0;
}
return 0;
}
截图要截图全,输入法挡住错误信息了🧐
这个语句貌似并没有执行,我测试的时候没有输入YN就直接执行下一个语句了
printf("continue or not(Y/N)?");
scanf_s("%c", &c, 1);
你的报错信息说的就是这个问题,因为你输入了y,并不是一个int类型,但是被下一句的scanf吃掉了
printf("input number to look for:");
scanf_s("%d", &number);//这个吃掉了你输入的y和n
//NO14 scanf输入报错
#include<stdio.h>
#define N 15
int main()
{
int i, number, top, bott, mid, a[N], flag = 1, sign, loca;
char c;
printf("enter data:\n");
scanf_s("%d", &a[0]);
i = 1;
while (i < N)
{
scanf_s("%d", &a[i]);
if (a[i] >= a[i - 1])
i++;
else
printf("enter this data again:\n");
}
printf("\n");
for (i = 0; i < N; i++)
printf("%5d", a[i]);
printf("\n");
while (flag)
{
top = 0;
bott = N - 1;
sign = 0;
printf("input number to look for:");
scanf_s("%d", &number);
if (number<a[0] || number>a[N - 1])
loca = -1;
while ((!sign) && (top <= bott))
{
mid = (top + bott) / 2;
if (number == a[mid])
{
loca = mid;
printf("Has found %d,its position is %d\n", number, loca + 1);
sign = 1;
}
else if (a[mid] < number)
top = mid + 1;
else
bott = mid - 1;
}
if (!sign || loca == -1)
printf("cannot find %d.\n", number);
getchar();
printf("continue or not(Y/N)?");
scanf_s("%c", &c, 1);
if (c == 'n' || c == 'N')
flag = 0;
}
return 0;
}
如果对你有帮助,还请点个采纳吧!