| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 495 人关注过本帖
标题:二级指针
只看楼主 加入收藏
三个人
Rank: 2
等 级:论坛游民
帖 子:54
专家分:40
注 册:2014-7-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
二级指针
#include<stdio.h>
#include<string.h>


void chswap(char** s1,char** s2)
{
    char* tmp;
    tmp=*s1;
    *s1=*s2;
    *s2=tmp;
}

int main(void)
{
  int n,k,i,j;
  scanf("%d %d",&n,&k);
  char str[n][11];
  for(i=0;i<n;i++)
    scanf("%s",str[i]);
  for(j=0;j<k;j++)
    for(i=0;i<n-j-1;i++)
      if(strcmp(str[i],str[i+1])>0)
        chswap(&str[i],&str[i+1]);     //这句改成chswap(str[i],str[i+1]);也正确,这是为什么????
  for(i=0;i<n;i++)
    printf("%s\n",str[i]);
  return 0;
}

[ 本帖最后由 三个人 于 2014-8-12 12:08 编辑 ]
搜索更多相关主题的帖子: include 
2014-08-11 16:56
DavidCheung
Rank: 2
等 级:论坛游民
威 望:1
帖 子:14
专家分:35
注 册:2014-8-8
收藏
得分:10 
程序中很多错误。
1.char str[n][11];  恐怕不能通过编译
2.    char* tmp;
    tmp = s1;   类型不匹配
3. str[i]和&str[i]的值是一样的,但类型不同。关于指针和数组的关联可参看http://blog.
2014-08-11 19:27
ywt666
Rank: 2
等 级:论坛游民
帖 子:9
专家分:10
注 册:2014-8-8
收藏
得分:10 
你好,这是我改的,你看可以不???
#include<stdio.h>
#include<string.h>
void chswap(char** s1,char** s2)
{
    char* tmp;
    tmp=*s1;
    *s1=*s2;
    *s2=tmp;
}
int main(void)
{
  int n=5,i,j;
  char str[5][11];
  for(i=0;i<5;i++)
    scanf("%s",str[i]);
  for(j=0;j<4;j++)
    for(i=0;i<n-j-1;i++)
      if(strcmp(str[i],str[i+1])>0)
        chswap(str[i],str[i+1]);     
  for(i=0;i<n;i++)
    printf("%s\n",str[i]);
  return 0;
}
2014-08-11 22:30
三个人
Rank: 2
等 级:论坛游民
帖 子:54
专家分:40
注 册:2014-7-6
收藏
得分:0 
回复 2 楼 DavidCheung
1.c99支持str[n];
2.打错了,已修正。
2014-08-12 12:10
三个人
Rank: 2
等 级:论坛游民
帖 子:54
专家分:40
注 册:2014-7-6
收藏
得分:0 
回复 2 楼 DavidCheung
3.谢谢
2014-08-12 12:10
快速回复:二级指针
数据加载中...
 
   



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

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