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
#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.