#include<stdio.h>
#define N 5
char c;
int i, n;
int flag = 1, top, bott, mid;
int loca = -1, sign = 0;
void sort(int str[])
{
while (flag)
{
printf("input number to research:\n ");
scanf("%d", &n);
top = 0;
bott = N-1;
if (n>str[0] || n<str[N - 1])
{
sign = 0;
loca = -1;
}
else
{
mid = (top + bott) / 2;
if ((n < str[mid]) || (n = str[mid]))
{
top = mid;
for (i = top; i < N; i++)
{
if (n == str[i])
{
sign = 1;
loca = i + 1;
}
}
}
else
if(n>str[mid])
{
bott = mid;
for (i = 0; i < bott; i++)
{
if (n == str[i])
{
loca = i + 1; //位置为i
sign = 1;
} //找到
}
}
}
if ((sign ==1) &&( loca != -1))
printf("\n%d local is %d\n", n, loca);
else
{
printf("NOT\n");
}
printf("是否继续寻找:(Y/N)\n");
scanf("%c", &c);
if (c == 'n' || c == 'N')
flag = 0;
}
}
int main()
{
int a[N];
int i,j,max,temp;
printf("please enter :\n");
for (i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < N-1 ; i++)
{
max = a[i];
for (j = i+1; j < N; j++)
{
if (max < a[j])
{
temp = max;
max = a[j];
a[j] = temp;
a[i] = max;
}
}
}
printf("this is\n");
for (i = 0; i < N; i++)
printf("%d ", a[i]);
sort(a);
return 0;
}
![](https://profile-avatar.csdnimg.cn/a774e47ed31740648c63b8f8f76f31cc_m0_52337772.jpg!4)
为什么只能输出后半部分数组的数的位置?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 浪客 2021-07-18 02:01关注
修改的地方都加了//
#include<stdio.h> #define N 5 void sort(int str[])// {// char c; int i, n; int top, bott, mid;// int loca;// do//while (flag) { loca=-1;// printf("input number to research:\n "); scanf("%d", &n); //top = 0; //bott = N-1; /*if (n>str[0] || n<str[N - 1]) { //sign = 0; loca = -1; } else*/ if (n<=str[0] || n>=str[N - 1]) { mid =(N-1) / 2;//mid = (top + bott) / 2; if ((n <= str[mid])) //if ((n < str[mid]) || (n = str[mid])) { top = mid; for (i = top; i < N; i++) { if (n == str[i]) { //sign = 1; loca = i + 1; break;// } } } else if(n>str[mid]) { bott = mid; for (i = 0; i < bott; i++) { if (n == str[i]) { loca = i + 1; //位置为i //sign = 1; break;// } //找到 } } } if ( loca != -1)//if ((sign ==1) &&( loca != -1)) printf("\n%d local is %d\n", n, loca); else { printf("NOT\n"); } printf("是否继续寻找:(Y/N)\n"); getchar();// scanf("%c", &c); //if (c == 'n' || c == 'N') // flag = 0; }while(!(c == 'n' || c == 'N'));// } int main() { int a[N]; int i,j,max,temp; printf("please enter :\n"); for (i = 0; i < N; i++) { scanf("%d", &a[i]); } for (i = 0; i < N-1 ; i++) { //max = a[i]; for (j = i+1; j < N; j++) { if (a[i] < a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; //a[i] = max; } } } printf("this is\n"); for (i = 0; i < N; i++) printf("%d ", a[i]); printf("\n"); sort(a); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥25 主成分分析中的第一第二主成分分别代表哪些参数
- ¥15 oracle数据库查询语句问题
- ¥15 有没有c++绘制算法的佬们吗救孩一下
- ¥15 android 蓝牙闪退
- ¥15 绝缘子污秽comsol仿真参数
- ¥15 Fatal error in Process MEMORY
- ¥15 labelme生成的json有乱码?
- ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
- ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
- ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时