#include<iostream> #include<cstring> using namespace std; void mnbs(int n,char a[][7]){ //mnbs-->max number bubble sort int s; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ s=0; for(int p=0;p<7;p++){ if(a[i][p]<a[j][p]||(a[i][p]=='/'&&int(a[j][p])>0)){ s=1; break; } } if(s){ swap(a[i],a[j]); } } } } int main(){ int n; cin>>n; char a[n][7],na[n][7]; int la[n]; for(int i=0;i<n;i++) for(int j=0;j<7;j++)na[i][j]='/'; for(int i=0;i<n;i++){ cin>>a[i]; la[i]=strlen(a[i]); } for(int i=0;i<n;i++) for(int j=0;j<la[i];j++)na[i][j]=a[i][j]; mnbs(n,na); for(int i=0;i<n;i++){ for(int j=0;j<la[i];j++) if(na[i][j]!='/')cout<<na[i][j]; } return 0; } 上面这个代码行吗
时间: 2024-04-19 07:29:28 浏览: 54
是的,上面的代码是一个完整的C++程序,可以编译和运行。它实现了一种冒泡排序的算法,用于将给定的正整数按照一定规则进行排序,以得到拼接后的最大数。程序通过输入n和n个正整数,然后输出拼接后的最大数。
请注意,该代码中使用了字符数组来存储输入的正整数,并在排序过程中进行了比较。字符串的长度被限定为7,这是因为示例代码中的字符数组定义为`char a[n][7]`。
如果你想测试这段代码,可以将其复制到一个C++编译器中并运行。输入n和n个正整数,然后程序将输出拼接后的最大数。
相关问题
#include<iostream> #include<cstring> #define MAXSIZE 100 using namespace std; void Reverse(char *a,int n) {//递归实现字符串的逆序存储 }。递归实现字符串的逆序存储。
`#include<iostream>` 和 `#include<cstring>` 表示在C++程序中包含了iostream库(用于输入输出操作)和cstring库(处理字符串相关的函数)。`MAXSIZE 100` 定义了一个常量,通常在动态数组中作为最大容量。
`using namespace std;` 是C++的一种命名空间使用声明,它告诉编译器直接从std命名空间导入所有的标识符,避免了频繁地写出`std::`前缀。
接下来的`void Reverse(char *a, int n)` 是一个函数原型,它接受两个参数:一个指向字符的指针`a`和一个整数`n`,表示需要逆序的字符串长度。这个函数的目的是通过递归的方式将给定字符串`a`的内容逆序存储。
具体递归实现可能会这样:
```cpp
void Reverse(char *a, int n) {
if (n == 0) { // 基线条件:如果字符串长度为0,认为已经逆序完成
return;
} else {
// 交换第一个字符和最后一个字符,然后递归处理剩下的部分
char temp = a[n - 1];
a[n - 1] = a[n]; // 把倒数第二个移到最后一位
a[n] = temp;
// 对剩余部分继续递归调用Reverse
Reverse(a, n - 1);
}
}
```
改写一下代码:#include<iostream> using namespace std; char st[200]; int main(){ while (scanf("%s",&st)==1) cout<<st<<" "; return 0; }
#include <iostream>
#include <cstring> // 添加头文件
using namespace std;
char st[200];
int main() {
while (scanf("%s", st) == 1) // 去掉取地址符&
cout << st << " ";
return 0;
}
阅读全文