8 条题解

  • 2
    @ 2022-12-23 16:14:03

    这道题我为大家整理了两种做法

    AC代码1(推荐)

    #include <iostream>
    using namespace std;
    int main()
    {
        int n, i;
        cin >> n;
        int a[n], b[n - 1];
        for (i = 0; i < n; i++)
        {
            cin >> a[i];
        }
        int x;
        cin >> x;
        int m = x - 1;
        for (i = 0; i < m; i++)
        {
            b[i] = a[i];
        }
        for (i = m; i < n - 1; i++)
        {
            b[i] = a[i + 1];
        }
        for (i = 0; i < n - 1; i++)
        {
            cout << b[i] << " ";
        }
        return 0;
    }
    

    AC代码2(懒人必看)

    #include <iostream>
    using namespace std;
    int main()
    {
        int a[100], n, x;
        cin >> n;
        for (int i = 0; i < n; i++)
        	cin >> a[i];
    	cin >> x;
    	for (int i = 0; i < n; i++)
    		if (i + 1 != x)
    			cout << a[i] << " ";
        return 0;
    }
    
    • 1
      @ 2024-2-16 14:07:21

      这道题可以使用vector向量实现快速删除,使用erase函数,vector操作函数如下:

      1. erase删除元素

      2. insert插入元素

      3. pop_back删除最后一个元素

      4. push_back在最后加入

        AC代码如下:

      #include <bits/stdc++.h>
      using namespace std;
      int main()
      {
          vector<int> v;
          int n,x;
          cin >> n;
          for (int i = 1;i <= n;i++)
          {
              int t;
              cin >> t;
              v.push_back(t);
          }
          cin >> x;
          v.erase(v.begin() + x - 1);
          for (int i = 0;i < v.size();i++)
          {
              cout << v[i] << " ";
          }
          return 0;
      }
      
      • 1
        @ 2023-8-17 18:52:24

        挥肠简单的一道题辣👀️

        只要把索引是x - 1的数跳过就好啦

        上代码

        #include <bits/stdc++.h>
        using namespace std;
        int main()
        {
            int n , a[10] , x;
            cin >> n;
            for (int i = 0; i < n; i++) cin >> a[i];
            cin >> x;
            for (int i = 0; i < n; i++)
            {
                if (i != x - 1) cout << a[i] << " ";
            }
            return 0;
        }
        
        • 0
          @ 2023-6-2 12:45:42
          #include <bits/stdc++.h>
          using namespace std;
          int n, a[15], x;
          int main()
          {
              cin >> n;
              for (int i = 0; i <= n - 1; i++)
              {
                  cin >> a[i];
              }
              cin >> x;
              for (int i = 0; i <= n - 1; i++)
              {
                  if (i + 1 != x)
                  {
                      cout << a[i] << " ";
                  }
              }
              return 0;
          }
          
          • 0
            @ 2022-10-16 12:16:57
            #include <iostream>//hetao3097453
            using namespace std;
            int a[11];
            int main()
            {
                int n,x;
                cin >> n;
                for(int i = 1;i <= n;i++)
                {
                    cin >> a[i];
                }
                cin >> x;
                for(int i = 1;i <= n;i++)
                {
                    if(i == x)
                    {
                        continue;
                    }
                    cout << a[i] << " ";
                }
                return 0;
            }
            
            
            • 0
              @ 2022-7-6 13:07:55
              #include <iostream>
              using namespace std;
              int main()
              {
                  int a[100], n, x;
                  cin >> n;
                  for (int i = 1; i <= n; i++) cin >> a[i];
                  cin >> x;
                  for (int i = 1; i <= n; i++) if (i != x) cout << a[i] << " ";
              }
              
              • 0

                首先要先定义n和x这两个变量,分别表示一共有几个整数和要删除的数的位置。然后再定义一个 数组a[11]。接下来要输入n和n个数输入,再输入x。然后进入一个循环里判断数组的每一项的下 标是不是等于x。如果是,那就写一个continue不输出这个值。如果不是,那就输出这一项的值。

                #include <iostream>
                using namespace std;
                int main()
                {
                	int n,a[11],x;
                	cin>>n;
                	for(int i=1;i<=n;i++)
                	{
                		cin>>a[i];
                	}
                	cin>>x;
                	for(int i=1;i<=n;i++)
                	{
                		if(i==x)
                		{
                			continue;
                		}
                		cout<<a[i]<<" ";
                	}
                	return 0;
                }
                • 0
                  @ 2022-4-28 20:27:30

                  沿用161这道题输出的思路,

                  分开输出即可,并不用实现真正的删除。

                  首先输出0到m-2这些下标的元素,因为m是位置,那么m这个位置对应的下标是m-1,它前面的就是m-2。

                  然后在输出从下标m开始到n-1的即可。

                  #include<iostream>
                  using namespace std;
                  int main()
                  {
                  	int n,m,a[10];
                  	cin>>n;
                  	for(int i=0;i<n;i++) 
                  	{
                  		cin>>a[i];
                  	}
                  	cin>>m;
                  	for(int i=0;i<m-1;i++)
                  	{
                  		cout<<a[i]<<" ";
                  	}
                  	for(int i=m;i<n;i++)
                  	{
                  		cout<<a[i]<<" ";
                  	}
                  	return 0;
                  }
                  
                  • 1

                  信息

                  ID
                  162
                  时间
                  1000ms
                  内存
                  256MiB
                  难度
                  5
                  标签
                  递交数
                  380
                  已通过
                  144
                  上传者