4 条题解

  • 3
    @ 2023-11-11 17:53:12
    #include <bits/stdc++.h> 
    using namespace std;
    int main()
    {
        string s;
        cin >> s;
        int a[s.length()];
        for(int i = 0; i < s.length(); i++)
        {
            a[i] = s[i];
        }
        sort(a, a + s.length());
        int num = 0;
        for(int i = 0; i < s.length(); i++)
        {
            if(a[i] != 48)
            {
                num = i;
                break;
            }
        }
        swap(a[0], a[num]);
        for(int i = 0; i < s.length(); i++)
        {
            cout << (char)a[i];
        }
        return 0;
    }
    
    • 3
      @ 2023-7-8 12:48:55
      #include <iostream>
      #include <string>
      using namespace std;
      int main()
      {
      	string a;
      	getline(cin, a);
      	int work = 0;
      	int num;//当string中有0的时候记录排序后第一个不为0的位置
      	for (int i = 0; i < a.size() - 1; i++)
      	{
      		for (int j = 0; j < a.size() - i - 1; j++)
      		{
      			if (a[j] > a[j + 1])
      			{
      				char temp = a[j];
      				a[j] = a[j + 1];
      				a[j + 1] = temp;
      			}
      		}
      	}
      	if (a[0] != '0')
      	{
      		for (int i = 0; i < a.size(); i++)
      		{
      			cout << a[i];
      		}
      	}
      	else
      	{
      		for (int i = 0; i < a.size(); i++)
      		{
      			if (a[i] != '0'&&work==0)
      			{
      				char temp = a[0];
      				a[0] = a[i];
      				a[i] = temp;
      				work = 1;//找到第一个非0元素,重新将i置0并从头输出
      				i = 0;
      			}
      			if (work == 1)
      			{
      				cout << a[i];
      			}
      		}
      	}
      	return 0;
      }
      
      • 1
        @ 2024-2-1 15:31:44

        简单

        题目叫我们算出最小的数-----sort呗

        如何循环

        看代码

        初学者必看

        /*
        主要函数:sort()排序,默认为从小到大排序,参数是要排序数组(字符串)的地址
                 begin()用于迭代容器的成员函数,返回一个指向容器中第一个元素的迭代器
                 end()用于迭代容器的成员函数,返回一个指向容器中最后一个元素之后位置的迭代器
                 swap()交换两个数的地址
        */
        #include <bits/stdc++.h>
        using namespace std;
        string s;//定义string变量
        int main(){
            cin>>s;//输入变量
            sort(s.begin(),s.end());//排序(从小到大)---详解见主要函数
            if (s[0]=='0'){//首位不能为0!
                for (int i=1;i<(int)s.size();i++){//循环求解
                //由于s[0]已经为0,所以不必循环s[0]
                    if (s[i]!='0'){//如果s[i]不是0
                        swap(s[0],s[i]);//交换两个数字
                        break;//停止循环!!!(必须)
                    }
                }
            }
            cout<<s;//输出
            return 0;
        }
        

        代码如下

        #include <bits/stdc++.h>
        using namespace std;
        string s;
        int main(){
            cin>>s;
            sort(s.begin(),s.end());
            if (s[0]=='0'){
                for (int i=1;i<(int)s.size();i++){
                    if (s[i]!='0'){
                        swap(s[0],s[i]);
                        break;
                    }
                }
            }
            cout<<s;
            return 0;
        }
        
        • 0
          @ 2022-11-21 23:44:10
          #include <iostream>
          #include <cstring>
          using namespace std;
          
          int main(int argc, char *argv[]) {
          	char f[20]={'\0'};
          	cin>>f;
          	//先按照从小到大排序
          	for (int i=0 ; i<strlen(f)-1; i++) {
          		for (int j =i+1 ;j<strlen(f); j++) {
          			if (f[i]>f[j]) {
          				char x;
          				x = f[i];
          				f[i] = f[j];
          				f[j] = x;
          			}
          		}
          	}
          	
          	//如果最小的是0,把第一个不是0的交换一下
          	if(f[0] == '0'){
          		for (int i =0 ; i< strlen(f); i++) {
          			if (f[i] != '0') {
          				f[0] = f[i];
          				f[i] = '0';
          				break; // 退出循环
          			}
          		}
          	}
          	
          	cout<<f<<endl;
          	return 0;
          }
          
          • 1

          信息

          ID
          117
          时间
          1000ms
          内存
          16MiB
          难度
          1
          标签
          递交数
          66
          已通过
          50
          上传者