标题:有谁帮我看看,问题出在哪了。。
只看楼主
shakespeare
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-3-31
结帖率:50%
已结贴  问题点数:20 回复次数:5 
有谁帮我看看,问题出在哪了。。
flipud函数实现数组元素的倒置,可运行时没错误也没有显示啊,高手帮忙看看。谢谢了~~~
这是程序代码
#include<iostream.h>
void flipud(int s[])
{
    int c,p;
    int i=0;
    while(s[i]!=NULL)
         i++;
    c=i;
    for(int k=0,j=c-1;k<j;k++,j--)
    {
        p=s[k];
        s[k]=s[j];
        s[j]=p;
    }
    for(int m=0;m<c;m++)

       cout<<s[m]<<" ";
   

}
void main()
{
    int a[]={1,2,3,4,5};
    flipud(a);
}
2010-05-12 16:18
shakespeare
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-3-31
得分:0 
有人可以帮我看看么?小弟在此谢过了~~~
2010-05-12 16:43
shakespeare
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-3-31
得分:0 
没人能帮帮我么?小弟我跪谢了~~~
2010-05-13 15:54
tfxanxing
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:82
专家分:165
注 册:2010-5-7
得分:10 
#include<iostream>
using namespace std;                //我用的是vs2008
void flipud(int s[])
{
    int c,p;
    int i=0;
    while(s[i]!=NULL)
         i++;
    c=i;
    for(int k=0,j=c-1;k<j;k++,j--)
    {
        p=s[k];
        s[k]=s[j];
        s[j]=p;
    }
    for(int m=0;m<c;m++)

       cout<<s[m]<<" ";
   

}
void main()
{
    int a[]={1,2,3,4,5,0};            //出错是因为你定义的对象a[] 初始化({1,2,3,4,5})后默认大小为5,while(s[i]!=NULL)  s[6] 虽然越界,但不会报错,
    flipud(a);
}
2010-05-13 16:01
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
得分:10 
while(s[i]!=NULL)
这个判定是不对的,语义上的错误,因为数组元素是int类型,虽然编译可以通过。
逻辑上的错误:你的目的是数组结尾的时候跳出while循环,但实事上这句代码将是一个
未知的结果,因为它不是字符串,并不保证在结尾时一定是0,即使是字符串,也不能保证结尾的地方一定会是0,
除非传进来之前确保了这件事儿(你的确这样做了,但不能保证你每次都能这样做)。
建议把数组的长度直接做为函数的参数传进来,因为调用者是知道数组大小的。
至于错误,楼上的已经给出解答。
只是说这个函数全法但不合理,不推荐。
2010-05-13 21:37
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
就是那个地方出错了while(s[i]!=NULL)
你可以记录下输入数组的长度
然后用for循环实现数组的倒转

                                         
===========深入<----------------->浅出============
2010-05-22 16:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-306367-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.105976 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved