dhu 재시험 기초 - 64 통계 자모

13655 단어
64 통계 문자
작성자: 주성은 시간 제한: 1S 장: 문자열
문제 설명:
문자열 꾸러미를'!'끝, 대소문자 구분 없이 영문 문자가 나타나는 횟수를 통계합니다.
설명 입력:
프로그램은 표준 입력 장치 (보통 키보드) 에서 여러 그룹의 테스트 데이터를 읽어야 한다.각 그룹의 입력 데이터는 대소문자의 영문 자모와'!'만 포함하여 한 줄로 구성되어 있다.잠시'!'끝, 줄당 문자 수는 100을 넘지 않습니다.두 그룹의 데이터 사이에 빈 줄이 없습니다.행의 첫머리와 끝에는 여분의 공백이 없다.
출력 설명:
각 그룹의 테스트 데이터에 대해 프로그램은 표준 출력 장치 (보통 이 프로그램을 시작하는 단말기) 에 대응하는 답안을 순서대로 출력해야 한다.각 그룹의 테스트 데이터는 몇 개의 줄로 구성되어 있으며, 각 그룹의 입력 데이터 출력에 알파벳이 나오는 횟수를 통계하고, 사전 순서에 따라 출력하며, 알파벳과 그 출현 횟수는 한 줄을 차지한다.행의 첫머리와 끝에는 여분의 공백이 없다.구체적인 격식은 아래와 같다.
샘플 입력:
asdfasdf! aAZZz!!
출력 예:
A:2 D:2 F:2 S:2 A:2 Z:3
#include 
#include 
#include 
void sort_str(char str[],int arr[],int x)// char    ,           
{
	int i,j,count;
	char temp;
	for(i=0;i<x;i++)
	{
		for(j=i+1;j<x;j++)
		{
			if(str[i]>str[j])
			{
				temp=str[i];
				str[i]=str[j];
				str[j]=temp;
				count=arr[i];
				arr[i]=arr[j];
				arr[j]=count;
			}
		}
	}
}
void upper(char *p,int x)//              
{
	int i;
	for(i=0;i<x;i++)
	{
		if(*(p+i)>='a'&&*(p+i)<='z')
			*(p+i)-=32;//   ascii     32
	}
}
int main()
{
	void sort_str(char a[],int b[],int x);
	void upper(char *p,int x);
	char str[100];
	char *p=str;
	int len,i,j,k;
	while(gets(str))
	{
		int arr[100]={0};
		len=0;
		for(i=0;str[i]!='!';i++)
			len++;
		upper(p,len);
		for(i=0;i<len;i++)
		{
			for(j=0;j<i;j++)
			{
				if(str[i]==str[j])
				{
					arr[j]++;
					for(k=i;k<len;k++)
						str[k]=str[k+1];
					i--;//         i+1    。
					len--;
				}
			}
		}
		sort_str(str,arr,len);
		for(i=0;i<len;i++)
			printf("%c:%d
"
,*(p+i),arr[i]+1); } return 0; }

while의 gets(str)는 gets(str)로 쓸 수 없습니다!EOF, gets () 반환 형식은 바늘이기 때문에 gets (str) 로 쓸 수 있습니다!NULL, 하지만 필요 없어요.

좋은 웹페이지 즐겨찾기