题目简单 不过输出格式太折磨人了啊 最后格式不对纠正了一个小时 心态崩了
找位置
http://www.nowcoder.com/questionTerminal/e3b2cc44aa9b4851bdca89dd79c53150
小心输出格式问题 借用两个数组 输出格式的逗号和只输出重复的数字!
#include<iostream>
#include<cstdio>
#include<string.h>
using namespace std;
char a[100];
char b[100];
int main(){
while(scanf("%s",a)!=EOF){ //循环输入
int n=strlen(a); //字符数组a的长度
bool mark; //标记
int sum=0; //表示有重复的数字的有多少个</cstdio></iostream>
for(int i=0;i<n;i++){
mark=true;
for(int j=0;j<i;j++){
if(a[i]==a[j])
mark=false;
}
if(mark==true){
b[sum]=a[i]; //得到数组b 里面为按序输出的每一行的数字
sum++;
}
}
for(int i=0;i<sum;i++){
int num=0; //每个数字重复次数
for(int j=0;j<n;j++){
if(a[j]==b[i])
num++;
}
int flag=0; //解决输出逗号问题
for(int j=0;j<n;j++){
if(a[j]==b[i]&&num>1){
flag++;
if(flag==1) //当输出为此行的第一个数的时候
printf("%c:%d",b[i],j);//输出格式没有前面的逗号
else
printf(",%c:%d",b[i],j);//输出为第1个以后的数要加逗号
}
}if(num>1)
printf("\n"); //这一步超级重要 只有重复次数大于等于两次才换行!不然会有输出一行为空
}
}
return 0;}
