030.字符排列

简介: 030.字符排列
/* 字符串的所有字符排列函数,用已知字符串s中的所有字符,生成由其中n个字符组成的所有字符排列 */
#define N 20
char w[N];
perm(int n, char *s)
{
  char s1[N];
  int i;
  if(n<1)
    printf("%s\n",w); /* 一个排列生成输出 */
  else
  {
    strcpy(s1,s); /* 保存本层次可使用的字符 */
    for(i=0;*(s1+i);i++)  /* 依次选本层次可用字符 */
    {
      *(w+n-1)=*(s1+i);/* 将选用字符填入正在生成的字符排列中 */
      *(s1+i)=*s1;
      *s1=*(w+n-1);
      perm(n-1,s1+1);  /* 递归 */
    }
  }
}
main()
{
  int n=2;
  char s[N];
  w[n]='\0';
  clrscr();
  printf("This is a char permutation program!\nPlease input a string:\n");
  scanf("%s",s);
  puts("\nPlease input the char number of permuted:\n");
  scanf("%d",&n);
  puts("The permuted chars are:\n");
  perm(n,s);
  puts("\nPress any key to quit...");
  getch();
}
相关文章
|
8月前
|
Java 关系型数据库 MySQL
ssm027学校运动会信息管理系统(文档+源码)_kaic
本文介绍了基于B/S结构的学校运动会信息管理系统开发过程。该系统采用JSP技术和MySQL数据库,确保了系统的安全性和稳定性。系统界面友好、操作简便,涵盖系统概述、分析、设计、数据库设计和测试等环节,实现了学校运动会信息管理的重要功能。经过测试,系统运行稳定,操作便捷,具备全面的功能、良好的可扩展性和维护性,有效提升了运动会信息管理的效率和准确性。关键词:学校运动会信息管理;B/S结构;JSP技术;MYSQL数据库。
|
存储 Windows
卸载时报错:“系统找不到指定的驱动器”问题处理
【10月更文挑战第5天】文档介绍了分析“系统找不到指定的驱动器”错误的原因及解决方法。此错误多因外部设备移除、网络驱动器断开或软件卸载程序缺陷引起。解决策略包括检查外部设备连接、更新驱动器盘符、使用第三方卸载工具以及手动清理注册表和文件系统。
3917 3
|
9月前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
361 12
|
12月前
|
安全 物联网 大数据
基于开元鸿蒙(OpenHarmony)的【智能药房与药品管理综合应用系统
基于开元鸿蒙(OpenHarmony)的【智能药房与药品管理综合应用系统
318 7
|
7月前
|
存储 芯片
SD卡突然损坏怎么办?
在如今的数字时代,存储设备早已成为我们日常生活里不可或缺的好帮手。不管是智能手机、相机,还是电脑、平板,都离不开存储设备来存放我们那些珍贵的照片、视频、重要的文档以及各种各样的数据。不过呢,存储设备也并非坚不可摧,就拿常见的SD卡来说,它虽然体积小巧,便于携带和使用,但在实际使用过程中,还是很可能会碰到各种各样的问题,甚至导致数据丢失或者设备损坏。那么当SD卡突然损坏时,我们究竟该如何应对呢?
|
Linux
Linux(4)USB CAN调试笔记
Linux(4)USB CAN调试笔记
801 0
|
JavaScript
如何在 vscode 中配置自己的 vue 模板?
如何在 vscode 中配置自己的 vue 模板?
295 0
|
存储 编解码 数据处理
还在为搞不懂笔记本电脑参数而苦恼么?一篇文章就够啦
还在为搞不懂笔记本电脑参数而苦恼么?一篇文章就够啦
630 4
|
机器学习/深度学习 算法 数据挖掘
泛社交裂变场景下AB增量科学评估方案
泛社交裂变场景下AB增量科学评估方案
300 0
|
网络协议 Go
Go语言学习编程实践:goroutine实现并发时钟服务器
Go语言学习编程实践:goroutine实现并发时钟服务器
207 0