架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8441|回复: 0

[C] 二位字符数组的输入,输出时排序

[复制链接]
发表于 2015-12-14 15:27:26 | 显示全部楼层 |阅读模式

#include "stdafx.h"
#include "stdio.h"
void out_student(char (*p)[20],int n); //char (*p)[20]数据指针(行指针)
void sort_student(char (*p)[20],int n);
int main()
{char students[3][20];
int i;
for(i=0;i<3;i++)
scanf("%s",*(students+i)); //录入
out_student(students,3);
sort_student(students,3);
out_student(students,3);
return 0;
}
void out_student(char (*p)[20],int n)  //(*p)行地址
{int i;
for(i=0;i<n;i++)
printf("%s",*(p+i));
printf("\n");
}
//选择排序
void sort_student(char (*p)[20],int n)
{int i,j;
for(i=0;i<n-1;i++)
{int pos=i;
for(j=i+1;j<n;j++)
    {if(strcmp(*(p+j),*(p+pos)<0)) //strcmp(*(p+j),*(p+pos)<0)  *(p+j)不能是行地址,一定要是列地址,是一级数组的首地址
{pos=j;}

    }
}
    if(pos!=i)
    {char str[20]={'\0'};
    strcpy(str,*(p+pos));  //*(p+pos)第pos行,第一列的地址 交换字符串
    strcpy(*(p+pos),*(p+i));
    strcpy(*(p+i),str);
   
    }
}
//总结:
/*二维数组表示(行地址,列地址)
指针遍历数组
二维字符数组(行地址,列地址)*/






上一篇:c# 指定ip段生成ip地址
下一篇:Cross-thread operation not valid: Control 'txtresult' accessed from a threa...
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-20 10:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表