1.
for(i=0,j=i+1;i<9;)
{
if(*(p+i)<*(p+j)) {min=*(p+i);x=i;j++;}
else {min=*(p+j);x=j;i=j;j++;}
}
如果p[0]最小,那么都只执行if复合语句,结果i不变,j递增,循环……
for循环修改为:
for(i=0,j=i+1;i<9, j<10;)
2.
for(i=0,j=i+1;i<9;)
{
if(*(p+i)>*(p+j)) {max=*(p+i);d=i;j++;}
else {max=*(p+j);d=j;i=j+1;i=j;j++;}
}
同1,如果p[0]最大……同样修改下for
3.
for(p=a;p<(p+10);p++)
cout<<*p<<" ";
在最后的输出中,你看看你的条件设为什么了。
p < p+10
这条件在内存检测完之前永久成立,检测完几乎是不可能的,现在内存都以G为单位!
修改for循环为:
for(p=a;p<(a+10);p++)
解决问题。
另外,这段代码的功能似乎成了:
输入10个数字,将其中最小及最大的数修改为第一个数。。。
强大!~~~
这个很奇怪啊
怎么在main里定义函数 这不像是c++的语法
int main()
{
void sr();
void wcg(int *p);
void sc(int *p);
声明貌似也应该在外面的吧。
再问问,你的程序要干什么?