10 条题解
-
10
#include <iostream> using namespace std; int flag[5005]; int a[20005]; int main() { int num = 1; int n; cin >> n; for (int i = 1; i <= n; i++) { int x; cin >> x; if (flag[x] == 0) { flag[x] = 1; a[num] = x; num++; } } for (int i = 1; i <= num - 1; i++) { cout << a[i] << " "; } return 0; }
解析:
1.获取元素,判断数组里是否有该元素,没有则将 flag 数组里这个数字对应的位子的 0 改为 1,代表已存。
2.至于 num 就是变相的将此数字输入数组 a 。
3.遍历输出。
4.懂的都懂👍 [doge]。
-
3
解析
在保存数据的时候,每输入一个数据,都判断这个数字是否之前出现过,如果没有出现过,就保存这个数据。
题解
#include <iostream> using namespace std; int flag[5005]; int a[20005]; int num = 1; int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { int x; cin >> x; if (flag[x] == 0) { flag[x] = 1; a[num] = x; num++; } } for (int i = 1; i <= num - 1; i++) cout << a[i] << " "; return 0; }
-
0
#include<iostream> using namespace std; int main() { int n; cin >> n; int a[n]; for(int i=0;i<n;i++)//循环输入 { cin >> a[i]; } for(int i=0;i<n;i++) { bool flag=true;//默认这个数并没有重复 for(int j=0;j<i;j++) { if (a[j]==a[i])//如果重复,改变flag值 { flag=false; } } if (flag)//如果这个数不重复则输出 { cout << a[i] << " "; } } return 0; }
-
-1
include <iostream> using namespace std; int flag[20005]; int a[20005]; int num = 1; int f=0; int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { f=0; int x; cin >> x; flag[num]=x; for (int i=1;i<num;i++) { if (flag[i]==x) { f=1; break; } } if (f==0) a[num]=x; num++; } cout<<a[1]<<" "; for (int i = 2; i <= num - 1; i++) if (a[i]!=0) cout << a[i] << " "; return 0; }
-
-1
#include <iostream> using namespace std; int flag[5005]; int a[20005]; int num = 1; int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { int x; cin >> x; if (flag[x] == 0) { flag[x] = 1; a[num] = x; num++; } } for (int j = 1; j <= num - 1; j++) cout << a[j] << " "; return 0; }//这个上课也写过啊(bushi
-
-1
我的思路
数据去重的话,就是去除重复,重复可以单独用一个数组保存,这里为一维int数组
程序流程: 输入 =》 判断值是否存在 =》 输出
#include<bits/stdc++.h> using namespace std; int bak[20001]; // 定义bak数组,用于存储输入值 int main() { int n; cin >> n; int a[n]; for(int i = 0;i < n;i++)cin >> a[i]; // 输入a数组 for(int i = 0;i < n;i++){ if(!bak[a[i]]){ cout << a[i] << " "; bak[a[i]] = 1; } // 如果bak不存在a[i]输出a[i] }return 0;
}
-
-1
#include <iostream> using namespace std; int s[20005],d[20005];//初始化 int main() { int a,su=0; cin>>a; for (int i=1;i<=a;i++) { cin>>s[i];//读入 } for (int i=1;i<=a;i++) { int flag=0; for (int q=1;q<=a;q++)//挨个判断:其中是否有相同的数 { if (s[i]==d[q]) { flag=1;//判断成功 break; } } if (flag==0)//若判断失败,则将其加入列表d { d[su+1]=s[i];//su负责记录成功加入列表d的数数量 su+=1;//25行的[su+1]是为了和最后一个循环中的i=1相对照 } } for (int i=1;i<=su;i++) { cout<<d[i]<<" "; } return 0; }//笨笨的办法
-
-2
1、定义数组flag和a。 2、定义sum,n变量。 3、for循环定义并输入x。 4、判断flag[x]是否等于0,是就将flag[x]赋值为1,a[num] 这个数赋值为x,num自加 (注意:赋值符是=,而判断符是==)。 5、for循环输出a[i]这个数。 看到这就点“亿”个👍吧!!!😄 😄
#include <iostream> using namespace std; int flag[5005]; int a[20005]; int num = 1; int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { int x; cin >> x; if (flag[x] == 0) { flag[x] = 1; a[num] = x; num++; } } for (int i = 1; i <= num - 1; i++) cout << a[i] << " "; return 0; }
- 1
信息
- ID
- 293
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 1301
- 已通过
- 649
- 上传者