| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1141 人关注过本帖
标题:有关C指针的问题
只看楼主 加入收藏
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
收藏
得分:0 
也不用一下子回复这么多同样内容把

我是初学者
2010-12-02 16:57
guxinglei132
Rank: 2
等 级:论坛游民
帖 子:43
专家分:69
注 册:2010-10-19
收藏
得分:7 
你这个程序有两个地方错了 第一个就是strcmp函数 它里面的两个参数放的应该是字符串的地址 而你写的strcmp(*p1,*p2)是值 所以不对
第二个地方时最后一行代码 只要出现了%s这个输出格式 那么后面接的一定是地址 而你却写得是printf("%s\n%s\n%s",*p1,*p2,*p3); *p1等不是地址而是具体的值 所以这个第二个错的地方 以下是改正后的代码

#include<string.h>
#include<stdio.h>
void main()
{
  char *t,*p1,*p2,*p3,s1[20],s2[20],s3[20];
  gets(s1);
  gets(s2);
  gets(s3);
  p1=s1;
  p2=s2;
  p3=s3;
  if(strcmp(p1,p2)>0)
    {
      t=p1;
      p1=p2;
      p2=t;
     }
  if(strcmp(p2,p3)>0)
    {
       t=p2;
       p2=p3;
       p3=t;
    }
  if(strcmp(p1,p2)>0)
    {
       t=p1;
       p1=p2;
       p2=t;
     }
  printf("%s\n%s\n%s",p1,p2,p3);

}
2010-12-02 17:15
守望之殇
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-12-2
收藏
得分:0 
谢谢你们两位的指点,感激呀!!

博观而约取
2010-12-02 18:00
守望之殇
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-12-2
收藏
得分:0 
回复 12楼 guxinglei132
谢谢!

博观而约取
2010-12-02 18:01
守望之殇
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-12-2
收藏
得分:0 
回复 12楼 guxinglei132
谢谢!

博观而约取
2010-12-02 18:01
守望之殇
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-12-2
收藏
得分:0 
回复 11楼 xzy199999
谢谢!
我一直以为我没发表成功,所以就。。。心浮气躁的

博观而约取
2010-12-02 18:01
张春平
Rank: 3Rank: 3
来 自:北城
等 级:论坛游侠
帖 子:48
专家分:124
注 册:2010-12-2
收藏
得分:7 
#include<string.h>
#include<stdio.h>
void main()
{
  char *t,*p1,*p2,*p3,s1[20],s2[20],s3[20];
  gets(s1);
  gets(s2);
  gets(s3);
  p1=s1;//把数组s1的首地址赋给p1;
  p2=s2;
  p3=s3;
  if(strcmp(p1,p2)>0)
    {
      t=p1;
      p1=p2;
      p2=t;
     }
  if(strcmp(p2,p3)>0)
    {
       t=p2;
       p2=p3;
       p3=t;
    }
  if(strcmp(p1,p3)>0)
    {
       t=p1;
       p1=p3;
       p3=t;
     }
  printf("%s\n%s\n%s",p1,p2,p3);
  getch();
}
这个程序应该用函数来做更好些,因为像这样做不能达到预想的结果。
这些语句  if(strcmp(p1,p2)>0)
    {
      t=p1;
      p1=p2;
      p2=t;
     }
  if(strcmp(p2,p3)>0)
    {
       t=p2;
       p2=p3;
       p3=t;
    }
  if(strcmp(p1,p3)>0)
    {
       t=p1;
       p1=p3;
       p3=t;
     }
不能使p1,p2,p3按从小到大的顺序输出

2010-12-02 18:02
守望之殇
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-12-2
收藏
得分:0 
回复 17楼 张春平
不是可以按照从大到小输出吗,我试过了

博观而约取
2010-12-02 18:07
守望之殇
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-12-2
收藏
得分:0 
回复 17楼 张春平
不过确实是用函数会比较好

博观而约取
2010-12-02 18:09
守望之殇
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-12-2
收藏
得分:0 
回复 17楼 张春平
不过确实是用函数会比较好

博观而约取
2010-12-02 18:09
快速回复:有关C指针的问题
数据加载中...
 
   



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

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