不明白为什么出错,大家帮忙看一下解决方案
不明白为什么出错,大家帮忙看一下
include <stdio.h>
int cho(int array[30]);
main()
{
int array[30];
int *p=array;
int k,b;
printf( "Please enter the numbers:\n ");
scanf( "%d ",&array[0]);
for(k=0;array[k] != 0&&k <29;k++)
scanf( "%d ",&array[k+1]);
p=cho(array[30]);
printf( "It is :\n ");
for(b=0;*(p+k)!=0;b++)
printf( "%d ",*(p+k));
}
int cho(int array[30])
{
int a,b;
for(a=0;a <30;a++)
{
if(array[a]!=2)
{
if(array[a]%2=0||array[a]%3=0||array[5]=0)
array[a]=0;
}
}
for(a=0;a <30;a++)
{
for(b=0;b <30-a;b++)
{
if(array[a+b-1]=0)
{
array[a+b-1]=array[a+b];
array[a+b]=0;
}
}
}
return(&array[0]);
}
------解决方案--------------------
#include <stdio.h>
p=cho(array);
------解决方案--------------------
p=cho(array);
if(array[a]%2==0||array[a]%3==0||array[5]==0)
------解决方案--------------------
for(a=0;a <30;a++)
{
for(b=0;b <30-a;b++)
{
if(array[a+b-1]==0)
{
array[a+b-1]=array[a+b];
array[a+b]=0;
}
}
}这语句中当a=0,b=0时array[a+b-1]不正确。
for(b=0;*(p+k)!=0;b++)printf( "%d ",*(p+k));k在执行语句for(k=0;array[k] != 0&&k <29;k++)时已经值为29。在这for语句中*(p+k)!=0[*(p+29)!=0)]如果没有成立那就成了死循环
include <stdio.h>
int cho(int array[30]);
main()
{
int array[30];
int *p=array;
int k,b;
printf( "Please enter the numbers:\n ");
scanf( "%d ",&array[0]);
for(k=0;array[k] != 0&&k <29;k++)
scanf( "%d ",&array[k+1]);
p=cho(array[30]);
printf( "It is :\n ");
for(b=0;*(p+k)!=0;b++)
printf( "%d ",*(p+k));
}
int cho(int array[30])
{
int a,b;
for(a=0;a <30;a++)
{
if(array[a]!=2)
{
if(array[a]%2=0||array[a]%3=0||array[5]=0)
array[a]=0;
}
}
for(a=0;a <30;a++)
{
for(b=0;b <30-a;b++)
{
if(array[a+b-1]=0)
{
array[a+b-1]=array[a+b];
array[a+b]=0;
}
}
}
return(&array[0]);
}
------解决方案--------------------
#include <stdio.h>
p=cho(array);
------解决方案--------------------
p=cho(array);
if(array[a]%2==0||array[a]%3==0||array[5]==0)
------解决方案--------------------
for(a=0;a <30;a++)
{
for(b=0;b <30-a;b++)
{
if(array[a+b-1]==0)
{
array[a+b-1]=array[a+b];
array[a+b]=0;
}
}
}这语句中当a=0,b=0时array[a+b-1]不正确。
for(b=0;*(p+k)!=0;b++)printf( "%d ",*(p+k));k在执行语句for(k=0;array[k] != 0&&k <29;k++)时已经值为29。在这for语句中*(p+k)!=0[*(p+29)!=0)]如果没有成立那就成了死循环