朋友们!帮帮忙吧!呜呜呜呜
1,将一个数组中的重复元素保留一个其他清零 2,输入20个0~9之间的整数,统计每个数在输入数列中出现的次数 这是两个题目嘛?1. 的意思是不是去除数组中的重复数字? shooan 发表于 2020-11-17 18:52
这是两个题目嘛?
1. 的意思是不是去除数组中的重复数字?
是两个题目
1的意思就是去除数组中的重复数字 毛大杀手 发表于 2020-11-17 19:02
是两个题目
1的意思就是去除数组中的重复数字
语言是C还是C++呢 shooan 发表于 2020-11-17 19:22
语言是C还是C++呢
C++ 第一题
https://i.bmp.ovh/imgs/2020/11/8515106da9796846.png
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> removeDuplicate(vector<int>& nums) {
vector<int> res;
for (int n : nums) {
if (find(res.begin(), res.end(), n) == res.end())
{
res.push_back(n);
}
}
return res;
}
int main()
{
vector<int> nums {1,2,3,5,6,4,1,2,3};
vector<int> res = removeDuplicate(nums);
for (auto& v : res) {
cout << v << endl;
}
return 0;
}
shooan 发表于 2020-11-17 19:37
第一题
万分感谢!!!! 第二题
https://i.bmp.ovh/imgs/2020/11/962cbbd02f1117e4.png
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> count(vector<int>& nums) {
vector<int> count(10); // 存储 0 到 9 是个数字出现的次数
for (int n : nums) {
count++;
}
return count;
}
int main()
{
vector<int> nums;
for (int i = 0; i < 20; i++)
{
int v;
cin >> v;
nums.push_back(v);
}
vector<int> res = count(nums);
int k = 0;
for (auto& v : res) {
if (v != 0)
{
cout << k<< ": " << v<< endl;
}
k++;
}
return 0;
} 本帖最后由 jackz007 于 2020-11-17 20:39 编辑
第1题
#include <stdio.h>
void show(int d[] , int n)
{
int i ;
printf("%d" , d) ;
for(i = 1 ; i < n ; i ++) printf("\t%d" , d) ;
printf("\n") ;
}
void dedup(int d[] , int m)
{
int i , j , k , n ;
for(n = m , i = 0 ; i < n - 1 ; i ++) {
for(j = n - 1 ; j > i ; j --) {
if(d == d) {
for(k = j + 1 ; k < n ; k ++) d = d ;
n -- ;
}
}
}
for(; n < m ;) d = 0 ;
}
int main(void)
{
int d = {18 , 22 , 55 , 53 , 12 , 18 , 89 , 98 , 77 , 33 ,\
52 , 73 , 77 , 26 , 13 , 88 , 17 , 19 , 53 , 18 ,\
18 , 22 , 55 , 53 , 12 , 18 , 89 , 98 , 77 , 33 ,\
52 , 73 , 77 , 26 , 13 , 88 , 17 , 19 , 53 , 18};
show(d , 40) ;
dedup(d , 40) ;
printf("\n") ;
show(d , 40) ;
}
编译、运行实况
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
18 22 55 53 12 18 89 98 77 33
52 73 77 26 13 88 17 19 53 18
18 22 55 53 12 18 89 98 77 33
52 73 77 26 13 88 17 19 53 18
18 22 55 53 12 89 98 77 33 52
73 26 13 88 17 19 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
D:\00.Excise\C>
第2题
#include <stdio.h>
int main(void)
{
int d , e = {0} , f , k , m ;
printf("请输入20个值为 0 - 9 的整数 : ") ;
for(k = 0 ; k < 20 ; k ++) scanf("%d" , & d) ;
for(f = 1 , k = 0 ; k < 20 && f ; k ++) {
if(d >= 0 && d <= 9) {
e] ++ ;
} else {
printf("数值超限!") ;
f = 0 ;
}
}
if(f) for(k = 0 ; k < 10 ; k ++) if(e) printf("%d : %d\n" , k , e) ;
}
编译、运行实况
D:\00.Excise\C>g++ -o x1 x1.c
D:\00.Excise\C>x1
请输入20个值为 0 - 9 的整数 : 1 5 7 8 9 2 3 4 5 4 0 2 5 6 1 3 2 4 8 9
0 : 1
1 : 2
2 : 3
3 : 2
4 : 3
5 : 3
6 : 1
7 : 1
8 : 2
9 : 2
D:\00.Excise\C>
页:
[1]