首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么小弟我的程序在TC不能运行

2012-03-03 
为什么我的程序在TC不能运行?请给改一下!#includestdlib.h#includestdio.h#includetime.h#defineNUL

为什么我的程序在TC不能运行?
请给改一下!
#include       <stdlib.h>
#include       <stdio.h>
#include   <time.h>
#define   NULL   0
#define   MAXZISE   10000
#define   keytype   int
typedef   struct   node
{
        keytype     data[MAXZISE];
        int       high,low;
}NodeType;
int   Srand(   int   max)
{
        int   i;
        srand((unsigned)time(NULL));
        for(i=0;i <max;   i++)
        printf( "%d\n ",rand());
        return   rand();
}

int     Seq_search(int   a[],int   k,int   max)
{
int   mid=0;
int   low=0;
int   high=max;
while(low <=high)
{
mid=(low+high)/2;
if(a[mid]==k)
{
  return   mid;
  }
else   if(k <a[mid])
{   high=mid-1;
}
else
{   low=high+1;
}
}
return   -1;
}
main()
{
        NodeType   t,p;
        NodeType   a[];
        int   k,max;
        printf( "MAX: ");
        scanf( "%d ",&max);
        a[]=Srand(max);
        printf( "K: ");
        scanf( "%d ",&k);
        p=Seq_search(a[],k,max);
        if(p!=-1)
                printf( "Find!   The   Locatin   is:%x,It 's   data   is   %d\n ",p,k);
        else
printf( "Sorry,can 't   find! ");

        return   0;
}

[解决办法]
给改一下吧

[解决办法]
楼主是想通过随机得到一个数组,然后用二分查找法查找其中的一个数?
二分查找法的前提是数组必须是排好序的

楼住看看这个行不行(我在vc下编译的)
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int Seq_search(int a[], int k, int max)
{
int mid=0;
int low=1;
int high=max;

while(low <=high)
{
mid=(low+high)/2;
if(a[mid]==k)
{
return 1;
}

else if(k <a[mid])
{
high=mid-1;
}

else
{
low=high+1;
}
}
return 0;
}

int main(void)
{
int a[100];
int p,k,max;
int i, temp;

p = 0;

printf( "MAX: ");
scanf( "%d ",&max);


srand((unsigned)time(NULL));

/* 产生max个随机数 */
for(i=1; i <=max; i++)
{
a[i] = rand();
printf( "%-10d ",a[i]);

}

printf ( "\n ");

/*对这max个随机数进行排序 */
for (i=1; i <=max; i++)
{
for (int j=2; j <=max; j++)
{
if (a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}

/* 从小到大的顺序排列 */
for (i=1; i <=max; i++)


{
printf ( "%-10d ", a[i]);
}

printf ( "\n ");

printf( "\nK: ");
scanf( "%d ",&k);

p=Seq_search(a, k, max);

if(p==1)
{
printf( "Find! The Locatin is:%x,It 's data is %d\n ",p,k);
}

else
{
printf( "Sorry,can 't find!\n ");
}

return 0;
}

热点排行