C语言,帮我看下哪错了
人气:
【字体:大 中 小】
发布时间:2008-09-15 11:02:19
>>>>>>>>提问#include <stdio.h>
void main()
{
int i,j,temp,a[5];
int count=5;
int x,y=n-1,k,find;
printf("***********\n");
for(i=0;i<count;i++)
scanf("%d",&a[i]);
for(j=0;j<=count-2;j++)
{
for(i=count-1;i>j;i--)
{
if(a[i]<a[i-1])
{
temp=a[i];
temp=a[i-1];
a[i-1]=a[i];
}
}
}for(j=0;j<count;j++)
printf("%d\t",a[j]);
{
int x=0,y=n-1;
while(x<=y)
{
k=(x+y)/2;
if(a[k]==find)
{
printf("paixuhou",k+1);
break;
}
else if(a[k]>find)
y=k-1;
else
x=k+1;
}
if(x>y)
printf("no\n");
}
休 闲 居 编 辑
>>>>>>>>休闲养生网回答:1.n没有定义,并且后面涉及到y=n-1,x且y还要做比较,所以n不但要定义,还要赋值
2.temp=a[i];
temp=a[i-1];
a[i-1]=a[i];
这段有问题,您的语句意思是将a[i]赋值给temp,再将a[i-1]再赋值给tenm,最后a[i]赋值给a[i-1].如果你想做的是将a[i]和a[i-1]的值互换的话应该为
temp=a[i];
a[i]=a[i-1];
a[i-1]=temp;
3.这套语句意思不明白.
for(j=0;j<=count-2;j++)
{
for(i=count-1;i>j;i--)
{
if(a[i]<a[i-1])
{
temp=a[i];
temp=a[i-1];
a[i-1]=a[i];
}
如果是想让a[]里的5个元素从小到大排列的话,这个循环语句是达不到的.
4.接下来的
if(a[k]==find)中,find未赋值,无法进行判断.
5.再接着向下看
printf("paixuhou",k+1); 中的k+1是代表什么输出呢?
是否应该改为
printf("paixuhou");
printf("paixuhou %d",a[k+1]
我没有看出您要编的程序要实行什么样的命令, 可以告诉我吗?
是要将a[5]里的所有元素重新排序吗?还是别 ?
建议你画个流程图,再编写
≡ 查看、发表评论 ≡