| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 569 人关注过本帖
标题:请问我这样做对吗?
只看楼主 加入收藏
jintom
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2010-11-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
请问我这样做对吗?
输入三个字符串,按由小到大顺序输出。编写交换
      函数fun,用交换指针的方式实现交换。
请教高手我这样做对不对(有没有符合题目意思做),不对的话应该怎么做?

#include<stdio.h>
#include<stdlib.h>
void  bky();

char fun(char *p1,char *p2)
{
  /**********Begin**********/
  
  char a[20]={'\0'};
  strcpy(a,p1);
  strcpy(p1,p2);
  strcpy(p2,a);   
  return(*p1,*p2);
  
  
  
  /**********  End  **********/
}

main()
{
  static char s1[20],s2[20],s3[20];
  char fun();
  printf("输入三个字符串:\n");
  scanf("%s",s1);
  scanf("%s",s2);
  scanf("%s",s3);
  if(strcmp(s1,s2)>0) fun(s1,s2);
  if(strcmp(s1,s3)>0) fun(s1,s3);
  if(strcmp(s2,s3)>0) fun(s2,s3);
  printf("排序结果是:\n%s\n%s\n%s\n",s1,s2,s3);
  
}
搜索更多相关主题的帖子: 字符串 
2010-12-29 16:08
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:5 
结果正确你的就对

Go Go Go
2010-12-29 16:11
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:5 
#include<stdio.h>
#include<string.h>
void fun(char *p1,char *p2,char *p3)
{
  char *temp;
  if(strcmp(*p1,*p2)>0)
  {
    temp=p1;
    p1=p2;
    p2=temp;
   }
   if(strcmp(*p1,*p3)>0)
  {
    temp=p1;
    p1=p3;
    p3=temp;
   }
  if(strcmp(*p2,*p3)>0)
  {
    temp=p2;
    p2=p3;
    p3=temp;
   }
 }
void main()
{
  char s1[20],s2[20],s3[20];
  char *p[3];
  printf("输入三个字符串:\n");
  scanf("%s",s1);
  scanf("%s",s2);
  scanf("%s",s3);
  p[0]=s1; p[1]=s2; p[2]=s3;
  fun(p[0],p[1],p[2]);
  printf("排序结果是:\n%s\n%s\n%s\n",s1,s2,s3);
}
你的那个肯定不对,对了也不符合题目的要求。用我的试一下吧。

   唯实惟新 至诚致志
2010-12-29 16:18
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
加上个头文件,#include<string.h>

Go Go Go
2010-12-29 16:20
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:5 
回复 楼主 jintom
加上头文件就对了

Go Go Go
2010-12-29 16:21
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
收藏
得分:0 
回复 3楼 qq1023569223
你这个也不对,函数里面要用双指针才行

我是初学者
2010-12-30 10:37
sunmingchun
Rank: 4
来 自:安徽-滁州
等 级:业余侠客
帖 子:198
专家分:277
注 册:2010-4-2
收藏
得分:0 
运行结果是正确的!不过有些多余了。
2010-12-30 21:50
langzilangyu
Rank: 2
等 级:论坛游民
帖 子:8
专家分:10
注 册:2010-11-13
收藏
得分:5 
程序代码:
#include<stdio.h>
#include"string.h"

void fun(char *p1,char *p2)
{
  /**********Begin**********/

 
  char a[20]={'\0'};
  strcpy(a,p1);
  strcpy(p1,p2);
  strcpy(p2,a);   

 
  /**********  End  **********/
}

void main()
{
  static char s1[20],s2[20],s3[20];
  printf("输入三个字符串:\n");
  scanf("%s",s1);
  scanf("%s",s2);
  scanf("%s",s3);
  if(strcmp(s1,s2)>0) fun(s1,s2);
  if(strcmp(s1,s3)>0) fun(s1,s3);
  if(strcmp(s2,s3)>0) fun(s2,s3);
  printf("排序结果是:\n%s\n%s\n%s\n",s1,s2,s3);

 
} 
在你的代码上面稍微修改下就行了
2010-12-30 22:14
快速回复:请问我这样做对吗?
数据加载中...
 
   



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

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