A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lwylwc 中级黑马   /  2015-8-2 00:34  /  426 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我想从键盘中输入六个字符串并排序,用数组做出来了,希望能够用指针访问2维数组的地址来交换每行str类型字符串,希望不要用我写的这种方式来完成,最近我学到了指针,希望指针函数来完成。
#include<stdio.h>
#include<string.h>
void main()
{
char string[10];  //定义字符型数组用来进行交换位置
char str[6][10];  //定义一个2位数组用来存放字符
int i,j;          //定义整型i,j.
for(i=0;i<6;i++)  //i用来控制内层循化和数组
gets(str[i]);     //从键盘中输入值到2维数组
for(j=0;j<6;j++)  //进行6次循化,实现6趟比较
for(i=0;i<6-j;i++)//进行6-j次比较
  if(strcmp(str[i],str[i+1])>0)//相邻的2个字符串进行比较
  {
  
          strcpy(string,str[i]);   //判断如果前面的字符串大于后面的字符串
      strcpy(str[i],str[i+1]); //则交换位置否则位置不变(冒泡法)
      strcpy(str[i+1],string);
  }
  for(i=0;i<6;i++)             //按排列好的2维数组。进行输出
          printf("%s\n",str[i]);
}

7 个回复

倒序浏览
谢谢你的分享
回复 使用道具 举报
慢慢成为大牛,多多交流
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
指针学是好学,就是用起来不知道如何下手是吧,我也这样
回复 使用道具 举报
没人能解决我的问题吗
回复 使用道具 举报
学的不错  继续努力
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马