C程序设计(第四版) 谭浩强 习题8.2 个人设计

习题 8.2 输入3个字符串,按由小到大的顺序输出。(指针法)

代码块:

方法1:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{char *s[3], st[3][10], **p, *t;int i, j;for (i=0, printf("Please enter 3 strings: "); i<3; s[i]=st[i], scanf("%s", s[i++]));for (i=0; i<3; i++)for (j=i+1; j<3; strcmp(s[i], s[j])>0 ? t=s[i], s[i]=s[j], s[j]=t, j++ : j++);for (p=s; p<s+3; printf("%s ", *p++));printf("\n");system("pause");return 0;
}

方法2:(利用函数的模块化设计)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void sort(char *x[], int n);          //定义排序函数
void print(char *x[], int n);         //定义输出函数
int main()
{char *s[3], st[3][10];int i;for (i=0, printf("Please enter 3 strings: "); i<3; s[i]=st[i], scanf("%s", s[i++]));  //输入3个字符串sort(s, 3);                                                                           //调用排序函数print(s, 3);                                                                          //调用输出函数system("pause");return 0;
}
//排序函数
void sort(char *x[], int n)
{int i, j;char *t;for (i=0; i<n; i++)for (j=i+1; j<n; strcmp(x[i], x[j])>0 ? t=x[i], x[i]=x[j], x[j]=t, j++ : j++);
}
//输出函数
void print(char *x[], int n)
{char **p;for (p=x; p<x+n; printf("%s ", *p++));printf("\n");
}

方法3:(利用动态内存分配和多重指针)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void input(char *p_str[], int n);
void sort(char *p_str[], int n);
void print(char *p_str[], int n);
int main()
{char **string;int i;for (i=0, string=(char **)calloc(3, sizeof(char *)); i<3; string[i]=(char *)calloc(20, sizeof(char)), i++);input(string, 3);sort(string, 3);print(string, 3);system("pause");return 0;
}
void input(char *p_str[], int n)
{char **p;for (p=p_str, printf("Please enter %d strings:\n", n); p<p_str+n; p++)gets(*p);
}
void sort(char *p_str[], int n)
{char *temp;int i, j;for (i=0; i<n; i++)for (j=i+1; j<n; strcmp(p_str[i], p_str[j])>0 ? temp=p_str[i], p_str[i]=p_str[j], p_str[j]=temp, j++ : j++);
}
void print(char *p_str[], int n)
{char **p;for (p=p_str, printf("Sort by:\n"); p<p_str+n; printf("%s\n", *p++));
}

习题 8.2 输入3个字符串,按由小到大的顺序输出。(指针法)相关推荐

  1. ACMNO.36输入三个整数,按由小到大的顺序输出。

    题目描述 输入三个整数,按由小到大的顺序输出. 输入 三个整数 输出 由小到大输出成一行,每个数字后面跟一个空格 样例输入 2 3 1 样例输出 1 2 3 来源/分类 C语言 题目截图: 思路: 借 ...

  2. 习题 5.14 输入n个字符串,把其中以字母A打头的字符串输出。

    C++程序设计(第三版) 谭浩强 习题5.14 个人设计 习题 5.14 输入n个字符串,把其中以字母A打头的字符串输出. 代码块: #include <iostream> #includ ...

  3. C++输入3个字符串,按由小到大的顺序输出(用指针方法处理),VS2017strcpy使用与strcpy_s使用

    本文是想用来记载作为菜菜的初学者的自己解决这个问题的过程>< 如果是想康康最终的代码,直接通过目录到达"风暴叒一次来临(正确的道路)就可以啦"~ 如果在代码输入之后出现 ...

  4. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个...

    2019独角兽企业重金招聘Python工程师标准>>> 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如"我ABC ...

  5. [YTU]_1064 (输入三个字符串,按由小到大的顺序输出)

    Description 输入三个字符串,按由小到大的顺序输出.分别使用指针和引用方式实现两个排序函数.在主函数中输入和输出数据. Input 3行字符串 Output 按照从小到大输出成3行.由指针方 ...

  6. 编写一个截取字符串的函数,输入为一个字符串和字节数, 输出为按字节截取的字符串。 但是要保证汉字不被截半个。

    题目: 编写一个截取字符串的函数,输入为一个字符串和字节数, 输出为按字节截取的字符串. 但是要保证汉字不被截半个,如"我ABC"4, 应该截为"我AB",输入 ...

  7. 输入三个字符串,按照由小到大的顺序输出(指针方法处理)——C语言

    1 概述 输入三个字符串,按照由小到大的顺序输出(指针方法处理) 2 解法 //C程序设计第五版(谭浩强) //章节:第八章 善于利用指针 // 所有练习均要求用指针方法处理 //练习8.2 输入三个 ...

  8. 输入三个字符串,按由小到大的 顺序输出,用指针来实现

    //输入三个字符串,按由小到大的 顺序输出,用指针来实现 #include<stdio.h> #include<string.h> #include<stdlib.h&g ...

  9. java十个整数相反顺序_编写程序,对输入的一个整数,按相反顺序输出该数。例如,输入为 3578, 输出为 8753。...

    编写程序,对输入的一个整数,按相反顺序输出该数.例如,输入为 3578, 输出为 8753. package HomeWork08; import java.util.Scanner; public ...

最新文章

  1. 【Android UI设计与开发】第09期:底部菜单栏(四)Fragment+PopupWindow仿QQ空间最新版底部菜单栏
  2. 值类型和引用类型在栈和堆中的分配
  3. Nginx(二):反向代理原理 与 配置文件详解
  4. 算法 - 贪心算法(集合覆盖问题求解)
  5. 医药电商为何发展不起来?
  6. FPGA学习笔记---任务(task) 和函数 (function)
  7. 【图像处理】MATLAB:基本原理
  8. Java线程池线程突然没了_70%人答不全!线程池中的一个线程异常了会被怎么处理?...
  9. 【MongoDB】索引属性 之 唯一索引
  10. PayPal个人账户不能提现了吗?怎么解决?
  11. SQL Server索引 (原理、存储)聚集索引、非聚集索引、堆 第一篇
  12. 温一壶月光下的酒——林清玄
  13. 大话信号与系统 --- 奇文共欣赏
  14. WordPress更新方法,防止 WP 官网 429 导致更新失败
  15. word to pdf
  16. 35+老测试员生涯回顾,揭秘无力吐槽的自动化真相…
  17. cesium 鼠标操作习惯修改 鼠标左键旋转 鼠标右键平移
  18. keyshot分辨率多少合适_keyshot电脑配置浅谈
  19. SQL Server 查看被锁的表
  20. P8311 [COCI2021-2022#4] Autići

热门文章

  1. 不会用就是凹凸曼 iOS5操控详细教程
  2. C 判断文件是否存在及读写执行权限
  3. Golang json 中文marshal
  4. 9个宠物摄影技巧示例
  5. linux服务器 硬盘安装教程,硬盘安装CentOS 6.0(超级详细图文教程) | 系统运维...
  6. java中正则匹配字符串长度_Java中使用正则表达式校验字符串
  7. 那个抗血栓机器人_软体机器人来了!它们可温柔“按摩”你受伤的心
  8. R语言使用epiDisplay包的alpha函数计算dataframe数据中指定数据列之间的信度分析、使用alpha函数和基于业务筛选的数据列的列表计算Cronbach‘s α
  9. 攻防世界crypto中 banana-princess的 writeup,真是坑啊
  10. IE0新特性归纳及JavaScript 功能增强分析