| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 452 人关注过本帖
标题:有谁帮我看看,问题出在哪了。。
只看楼主 加入收藏
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
快速回复:有谁帮我看看,问题出在哪了。。
数据加载中...
 
   



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

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