排序数组可以使用冒泡算法:如果前一个数据比后一个大,则交换。
{
int i,j,t,a[6]
printf("Please input 6 integers:\n")
for(i=0i<6i++)
scanf("%d",&a[i])
for(i=0i<5i++) /* 冒泡法排序 */
for(j=0j<6-i-1j++)
if(a[j]>a[j+1])
{t=a[j]/* 交换a[i]和a[j] */
a[j]=a[j+1]
a[j+1]=t
}
优点:
简洁紧凑、灵活方便:C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行 *** 作,而这三者是计算机最基本的工作单元。
以上内容参考:百度百科-c语言程序设计
#include <iostream>void print(int *arr, int length) {
for (int i = 0i <length++i) {
std::cout <<*(arr + i)
}
std::cout <<std::endl
}
void swap(int *arr1, int *arr2) {
int temp = *arr1
*arr1 = *arr2
*arr2 = temp
}
void permutate(int *arr, int length, int *subArr, int subLen) {
if (subLen == 1) { print(arr, length)}
else {
for (int i = 0i <subLen++i) {
swap(subArr, subArr + i)
permutate(arr, length, subArr + 1, subLen - 1)
swap(subArr, subArr + i)
}
}
}
void permutate(int *arr, int length) {
permutate(arr, length, arr, length)
}
int main()
{
int n
std::cout <<"enter a number n: (1 <= n <= 9)" <<std::endl
std::cin >>n
int *arr = new int[n]
for (int i = 0i <n++i) {
arr[i] = i + 1
}
permutate(arr, n)
delete [] arr
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)