C语言问题 把一个数组中的重复元素去掉

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言问题 把一个数组中的重复元素去掉相关的知识,希望对你有一定的参考价值。

参考技术A

#define _CRT_SECURE_NO_DEPRECATE

#include <iostream>

#include <string>

#include <algorithm>

using namespace std;

去掉字符串中重复的字符并排序

int main()

string input;

while (cin>>input)

int count = 0; // 统计有多少个空格

for (int i = 0; i < input.size(); i++)

for (int j = i+1; j < input.size(); j++)

if (input[i] == ' ')

break;

if (input[i] == input[j])

input[j] = ' ';

count++;

int newsize = input.size() - count;

string str(newsize,'0');  //创建一个长为newsize,用‘0’填充的字符串

int j = 0;

for (int i = 0; i < input.size(); i++)

if (input[i] != ' ')

str[j] = input[i];

j++;

   

sort(str.begin(), str.end());

cout << str<<endl;

扩展资料:

while语句若一直满足条件,则会不断的重复下去。但有时,需要停止循环,则可以用下面的三种方式:

一、在while语句中设定条件语句,条件不满足,则循环自动停止。

如:只输出3的倍数的循环;可以设置范围为:0到20。

二、在循环结构中加入流程控制语句,可以使用户退出循环。

1、break流程控制:强制中断该运行区内的语句,跳出该运行区,继续运行区域外的语句。

2、continue流程控制:也是中断循环内的运行操作,并且从头开始运行。

C语言,查找数组里重复出现的数字;

输入一个整数N(N <= 106),随后输入N个整数Ni(0 < Ni <= 104)
输出出现次数最多的数字和对应次数,如果出现次数最多的数有多个,输出数字最大的那个。
例如:
输入
5
1 1 2 2 3
输出
2 2

//如果这题目是在oj上,请去掉所有的注释
#include <stdio.h>
int main()

//用数组下标1~104表示输入的数字
//用数组每个元素的值表示该下标对应的元素输入次数
int a[105]=0,i,n,ni,max;
scanf("%d",&n);
max=a[0];
for(i=0;i<n;i++)

scanf("%d",&ni);
a[ni]++;
if(max<a[ni])
max=a[ni];

for(i=104;i>0;i--)//想想为什么倒着比较

if(a[i]==0) continue;
if(max==a[i])

printf("%d %d\\n",i,a[i]);
break;


return 0;

参考技术A 可以一次读入N个数据。可以考虑以回车结束读入的一组。参考如下写法:#include"stdio.h"#defineMax100intX[Max]=0,,Y[Max]=0,;intmain()inti=0,j=0;inta,b;charc=0;printf("输入第一个数组(以空格分开,回车结束)");while((c!='\n'))scanf("%d%c",X+i++,&c);c=0;printf("输入第二个数组(以空格分开,回车结束)");while((c!='\n'))scanf("%d%c",Y+j++,&c);for(a=0;a

以上是关于C语言问题 把一个数组中的重复元素去掉的主要内容,如果未能解决你的问题,请参考以下文章

将C语言中一个整数数组中的重复元素都去掉,如输入1 1 1 2 3,输出 2 3.

c语言如何判断一个数组中重复元素的个数,并输出这个个数的值?

C语言,查找数组里重复出现的数字;

C语言删除数组重复数字

在c语言中输入数组两个数组,查找重复元素并输出怎么写啊

c语言编程:输出数组中重复出现的数