| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 655 人关注过本帖
标题:求助 这是一个半成品 谁能帮我补全??
只看楼主 加入收藏
疾风之狼
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-12-26
收藏
 问题点数:0 回复次数:3 
求助 这是一个半成品 谁能帮我补全??
求助 这是一个半成品有一些错误, 谁能帮我补全??????
搜索更多相关主题的帖子: 半成品 
2004-12-30 20:45
疾风之狼
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-12-26
收藏
得分:0 

#include"stdio.h"

struct a {int x; int n; } main() { int t,t1; struct a a[11];

struct a *low,*high,*mid; int key; printf("请输入要查询的数字:\n"); scanf("key is %d",&key); a[0].x=0;a[0].n=0; *low=a[1]; *high=a[10]; t=((*low).n+(*high).n)/2; *mid=a[t]; for(t1=1;t1<=10;t1++) {printf("请从小到大输入10个数字:\n"); scanf("%d",&a[t1].x); } for(t1=1;t1<=10;t1++) {a[t1].n=t1; /*printf("%d",a[t1].n); */ }

loop:if((*mid).x==key) /*!!!!!!注意!!!!!*/ {printf("查询到的数字为:%d,该数字在数组的第%d号",mid->x,mid->n); } if(mid->x>key) {*high=a[t-1]; t=(low->n+high->n)/2; *mid=a[t]; if((low->x==mid->x)&&(low->n==mid->n)) lo{ if(low->x==key) {printf("查询到的数字为:%d,该数字在数组的第%d号",low->x,low->n); }/*3号!!!!!*/ if(high->x==key) {printf("查询到的数字为:%d,该数字在数组的第%d号",high->x,high->n); } printf("数据没有找到!!");

} /* ?????!!!!!!潜在的问题... */

goto loop; } if(mid->x<key) {*low=a[t+1]; t=((low->n)+(high->n))/2; *mid=a[t]; if((mid->x==high->x)&&(mid->n==high->n)) {goto loo;} /*注意!!!*/ goto loop;

}

}

2004-12-30 20:47
总是不懂
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-12-31
收藏
得分:0 

你的二分法写的很乱,我这么写! #include "stdio.h"

int main(void) { int a[11]; printf("Please Input 10 Sorted Integers:\n"); for (int i = 1; i <= 10; i++) { scanf("%d", &a[i]); } int key; printf("Please Input Integer you want to find:"); scanf("%d", &key); int low = 1; //lower bound int high = 10; //upper bound int mid; for ( ; ; ) { mid = (low + high) / 2; if (a[mid] == key) { printf("%d\n", mid); break; } if (a[mid] > key) { high = mid - 1; if (high < low) { printf("not found!\n"); break; } } if (a[mid] < key) { low = mid + 1; if (high < low) { printf("not found!\n"); break; } } } return 0; }

2004-12-31 23:03
总是不懂
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-12-31
收藏
得分:0 

还有一种查号码直接出数据的写法: #include "stdio.h"

int main(void) { printf("input 5 ingeler you to want:\n"); int a[10]; for(int i=1;i<=5;i++) {scanf("%d",&a[i]);}

printf("input 1 number you to want:\n"); int key; scanf("%d",&key); printf("%d",a[key]); }

2004-12-31 23:07
快速回复:求助 这是一个半成品 谁能帮我补全??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026067 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved