0030
#include<stdio.h>
int main(void)
{
int a;
double b;
char c;
scanf("%3d%lf|%c",&a,&b,&c);
printf("%-8d|%8.1f|%c\n",a,b,c);
return 0;
}
0054
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<algorithm>
#include<stdlib.h>
using namespace std;
int str[15][15];
int ctr[15];
bool use[15];
int graph[20001][15];
int Size;
int m,n;
int Judge()//匹配判断
{
int f_1=1;
int f_2=1;
for(int i=0; i<m; i++)
{
if(str[i][str[i][0]+1]==1&&f_1)
{
int j=1;
for(int x=0; j<=str[i][0]&&x<n; x++)
{
if(str[i][j]==ctr[x])
j++;
}
if(j<str[i][0]+1)
f_1=0;
}
else
{
int j=1;
for(int x=0; j<=str[i][0]&&x<n; x++)
{
if(str[i][j]==ctr[x])
j++;
}
if(j==str[i][0]+1)
f_2=0;
}
if(!f_1||!f_2)
break;
}
if(f_1&&f_2)
return 1;
else
return 0;
}
void DFS(int x)//递归搜索
{
if(x==n&&Judge())//结束条件
{
for(int i=0; i<n; i++)
{
graph[Size][i]=ctr[i];
}
Size++;
}
if(x<n)
{
for(int i=0; i<n; i++)
{
if(use[i])
{
ctr[x]=i;
use[i]=false;
DFS(x+1);
use[i]=true;
}
}
}
}
int main()
{
while(cin>>n>>m)
{
for(int i=0; i<m; i++)
{
cin>>str[i][0];
for(int j=1; j<=str[i][0]+1; j++)
{
cin>>str[i][j];
}
}
memset(use,true,sizeof(use));//初始化
Size=0;
DFS(0);//从第零号球员开始搜
cout<<Size<<endl;
for(int i=0; i<Size; i++)
{
for(int j=0; j<n; j++)
{
cout<<graph[i][j]<<" ";
}
cout<<endl;
}
}
return 0;
}
0059
#include<bits/stdc++.h>
using namespace std;
void select_sort(int *a,int n,int i){
if(i == n) return;
int index = i;
int mins = a[i];
for(int j = i + 1;j < n;j++){
if(mins > a[j]){
index = j;
mins = a[j];
}
}
if(mins != a[i]){
int t = a[index];
a[index] = a[i];
a[i] = t;
}
printf("swap(a[%d], a[%d]):",i,index);
for(int k = 0;k < n;k++){
printf("%d",a[k]);
if(k!=n-1) cout<<" ";
}
if(i!=n-1)
printf("\n");
select_sort(a,n,i+1);
}
int main(){
int n;
scanf("%d",&n);
int a[n];
for(int i = 0;i < n;i++){
scanf("%d",&a[i]);
}
select_sort(a,n,0);
}
0060
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
bool cmp(string a, string b)
{
return a < b;
}
int main()
{
int n,flag=0,m=0;
string t;
vector<vector<string> >arr;//建立一个二维数组
cin >> n;
getchar();
for (int i = 0; i < n; i++)
{
flag = 0;
getline(cin, t);//以行输入字符串
for (int j = 0; j < arr.size(); j++)
{
flag = 0;
if (t == arr[j][0])
{
arr[j].push_back(t);//相同就在对应的行后面插入
flag = 1;
break;
}
}
if (flag == 0)//不同就在新增一行,并且插入这个颜色
{
arr.push_back(vector<string>());//新增一行
arr[arr.size() - 1].push_back(t);
}
}
vector<string>max;
for (int i = 0; i < arr.size(); i++)
{
if (arr[i].size()>m)
{
max.clear();//清空数组
max.push_back(arr[i][0]);
m = arr[i].size();
}
else if (arr[i].size() == m)
{
max.push_back(arr[i][0]);//并列时插入并列颜色
}
}
sort(max.begin(), max.end(), cmp);
for (int i = 0; i < max.size(); i++)
{
cout << max[i] << endl;
}
return 0;
}
0061
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int s[n];
for(int i = 0;i < n;i++) cin>>s[i];
for(int i = 0; i < n;i++){
printf("Insert element[%d]:",i+1);
printf("\n");
printf(" Init:");
for(int k = 0;k < i+1;k++){
printf("%d",s[k]);
if(k!=i) printf(" ");
}
printf("\n");
int temp = s[i];
int j;
int num = i;
for(j = i-1;j>=0;j--,num--){
if(temp < s[j]){
s[num] = s[j];
printf(" Move back:");
for(int m = 0;m < i+1;m++){
printf("%d",s[m]);
if(m!=i) printf(" ");
}
printf("\n");
}
if(temp >= s[j]){
break;
}
}
s[j+1] = temp;
printf(" Final:");
for(int k = 0;k < i+1;k++){
printf("%d",s[k]);
if(k!=i) printf(" ");
}
printf("\n");
}
}