19 20楼的 和12楼的 似乎都犯了同一个错误哈~~~

我的爱可以化冰岛为玫瑰,那个曾经枕着蓝色风铃寂寞的叹息声入睡的你是否依然深信不疑?
这种题目,都是老师没事找事做的,自己找个程序,然后++,——,修改下,知道运行结果了,再删除其中的某个。然后让别人去做。
现在做程序的研究这个有个毛用。
int main(void)
{
int i=0,j=0;
int temp;
int a[5]={1,2,-3,3,-1};
while(i<1) {
while(a[i]<=0) i++;
while(a[j]>0) j++;
if(i<j) {
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
#include<stdio.h>
int main(void)
{
int i=0,j=0;
int temp;
int a[5]={1,2,-3,3,-1};
while(i<1) {
while(a[i]<=0) i++;
while(a[j]>0) j++;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
for(i=0;i<5;i++)
printf("%d ",a[i]);
}如果是针对那个问题,这个就可以这样。
#include<stdio.h>
int main(void)
{
int i=0,j=0;
int temp;
int a[5]={-1,-2,-3,3,-1};
while(j<5-1) {
while(a[i]<=0) i++;
while((a[j]>0||j<=i)&&j<5-1) j++;
if(i<j) {
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
printf("%d %d\n",i,j);
for(i=0;i<5;i++)
printf("%d ",a[i]);
getch();
}
还有什么错误请指教
顺便写完整程序。
#include<stdio.h>
#define N 7
int main(void)
{
int i=0,j=0;
int temp;
int a[N];
for(temp=0;temp<N;temp++)
{printf("input number times:%d\n",1+temp);
scanf("%d",&a[temp]);}
while(j<N-1) {
while(a[i]<=0) i++;
while((a[j]>0||j<=i)&&j<N-1) j++;
if(i<j) {
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for(i=0;i<N;i++)
printf("%d ",a[i]);
}