首页 > 其他 > 详细

题目1199:找位置

时间:2014-02-01 15:11:40      阅读:594      评论:0      收藏:0      [点我收藏+]

点击打开链接

/*
	时间:2014.1.31
	目的:题目1199:找位置 http://ac.jobdu.com/problem.php?pid=1199
*/
#include <stdio.h>
#include <string.h>
int main()
{
	char str[101];
	int flag[101], i, j, k, f;
	while(gets(str))
	{
		memset(flag,0,sizeof(int)*101);
		for(i = 0;str[i];i++)
		{
			f = 0;
			if(flag[i] == 1)//如果已经标记访问过就跳过 
				continue;
			for(j = i + 1;str[j];j++)//访问指针i后的字符是否与i的字符有相同的,如果相同则输出 
			{
				if(str[j] == str[i])
				{ 
					if(f == 0)//f用来输出第一个i位置的字符 ,也表示有多个相同字符,换行时需要用 
					{
						printf("%c:%d",str[i],i);
						f = 1;//控制以后不用再输出i位置的字符 
					}
					printf(",%c:%d",str[j],j);
					flag[j] = 1;
				}	
				if(f == 1 && j == (strlen(str) - 1))//只有当有多个字符 ,且访问到最后一个字符时就换行 
					printf("\n");
			}	
			
		}
		
	}
	return 0;
}
/*
------------------
abcaaAB12ab12			思路:1. 利用两个工作指针i,j,i用来指着当前位置,j用来循环i后的字符 
a:0,a:3,a:4,a:9				  2. 
b:1,b:10
1:7,1:11
2:8,2:12
------------------
*/ 


题目1199:找位置

原文:http://blog.csdn.net/z_x_b5/article/details/18887691

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!