#include"stdio.h"
int main()
{
int a[10],i,j,m=0;
printf("输入数组:\n");
for(i=0;i<=9;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<=9;i++)
{
for(j=i+1;j<=9;)
{
if(a[j]==a[i])
{
for(;j<=8;j++)
{
a[j]=a[j+1];
}
m++;
j=i+1;
}
else
j++;
}
}
for(i=0;i<=9-m;i++)
{
printf("%d",a[i]);
}
return 0;
}
求改!
#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流程控制:也是中断循环内的运行操作,并且从头开始运行。
先排序,在进行遍历比较。
#include <stdio.h>基本思路
先将数组排序
拷贝数组去重
其实就是改了下循环条件而已(既然下面的循环都用了m了,为什么上面不用呢)
本回答被提问者采纳