30/09/2018, 21:03

Mọi người giúp e bài này mới. Tại sao nó chỉ đếm kí tự đầu tiên

Đếm số lần xuất hiện của các kí tự trong xâu s[].

#include<stdio.h>
#include<conio.h>
#include<string.h>
void demkytu1(char s[], char kt[], int sl[], int *tskt)
{
	int i, j; *tskt = 0;
	for(i = 0; i < strlen(s); i++)
	{
		for(j = 0; j < *tskt; j++)
		{
			if( s[i] == kt[j])
			sl[j]++;
			break;
		}
		if( j == *tskt)
		{
			*tskt = *tskt + 1;
			kt[*tskt - 1] = s[i];
			sl[*tskt - 1] = 1;
		}
	}
}

main()
{
	char s[] = "truong hoc";
	char kt[100];
	int sl[100], tskt;
	demkytu1(s, kt, sl, &tskt);
	for(int i = 0; i < tskt; i++)
	{
		printf(" 
 %c : %d", kt[i], sl[i]);
	}
}
Nguyễn Tấn Khoa viết 23:11 ngày 30/09/2018

Bạn bỏ break đi coi thử được không.

Tuấn Anh Lê viết 23:05 ngày 30/09/2018

à đúng r, thanks bác. phải là { sl[j]++; break;}

Bài liên quan
0