-
26-11-2011, 05:19 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Đêm số lần xuất hiện của kí tự(không đơn giản)
// Nhờ các bạn chỉ giúp!
Mình muốn viết một chương trình nhập vào 5 chuỗi 5 kí tự sao đó đếm số lần xuất hiện của kí tự trong chuỗi.ví dụ như thế này:
--------------------------------------------------
Khi chạy chương tình:
nhập chuỗi 1: aaaaaaaaaaaaaa
kí tự cần kiểm tra:a
nhập chuỗi 2: bbbbbbbbbbbbbb
kí tự cần kiểm tra:b
nhập chuỗi 3: ccccccccccccccccc
kí tự cần kiểm tra:c
nhập chuỗi 4: dddddddddddddd
kí tự cần kiểm tra:d
nhập chuỗi 5: fffffffffffffffffffffff
kí tự cần kiểm tra:f
Kết quả là:
Số lần kí tự "a" xuất hiện trong chuỗi 1 là: 14
Số lần kí tự "b" xuất hiện trong chuỗi 2 là: 14
Số lần kí tự "c" xuất hiện trong chuỗi 3 là: 14
Số lần kí tự "d" xuất hiện trong chuỗi 4 là: 14
Số lần kí tự "e" xuất hiện trong chuỗi 5 là: 14
Số lần kí tự "f" xuất hiện trong chuỗi 6 là: 14
------------------------------------------------------
Nhưng mình không biết thế nào. Mình chỉ viết được như thế này:
Mã:#include <stdio.h>#include <conio.h>int len(char s[]){ int x=0; while (s[x]!='\0') x++; return x;} int main(){ char s[20]; char c,j; clrscr();for(j=0;j<5;j++) { printf(" Nhap chuoi thu %d: ",j+1); fflush(stdin); gets(s); printf(" Nhap ky tu can dem: "); fflush(stdin); scanf("%c",&c); int dem=0; for(int i=0; i<len(s);i++) if (s[i]==c) dem++; printf(" So lan xuat hien ky tu '%c' trong chuoi '%s' la %d lan",c,s,dem);} getch(); return 0;}
Khi chạy chương tình:
nhập chuỗi 1: aaaaaaaaaaaaaa
kí tự cần kiểm tra:a
Kết quả là:
Số lần kí tự "a" xuất hiện trong chuỗi 1 là: 14
------------------------------------------------------
Chương trình cứ lập lại cho tới khi nhập chuỗi thứ 5.
.....
--------------------------------------------------
Khi chạy chương tình:
nhập chuỗi 5: aaaaaaaaaaaaaa
kí tự cần kiểm tra:a
Kết quả là:
Số lần kí tự "a" xuất hiện trong chuỗi 5 là: 14
------------------------------------------------------
Mình muốn là được như đề phía trên,nhập 1 lần 5 chuỗi 5 kí tự rồi in ra kết quả.chứ không phải nhập từng chuỗi từng kí tự như bài mình làm.Mong các bạn chỉ giáo.[IMG]images/smilies/online.gif[/IMG]View more random threads:
- Mảng các xâu kí tự
- sua loi thuat toan first fit
- chuyển đổi sang dạng sắp xếp (int n, float *a) ? help me
- Mình ko hiểu cách viết code trong Visual C++
- Bắt đầu học lập trình hướng đối tượng
- Liên quan đến con trỏ ở hàm main và hàm con, xin mọi người giúp đỡ
- Mọi người xem hộ bài danh sách này bị lỗi với
- Tính toán trên mảng
- [Hỏi] Cách dùng biểu thức so sánh
- Giúp đỡ và gợi tý bài tập về Chuỗi
-
26-11-2011, 05:22 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình có học lỏm dc ở trên congdongcviet cái code này [IMG]images/smilies/biggrin.png[/IMG] Bạn tham khảo nhé
Mã:char *s = "nguyen van a";int count[256]={0};for (; *s; ++s) ++count[*s];
-
27-11-2011, 04:13 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi clchicken
-
27-11-2011, 05:23 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi vuanphuong
còn khai báo:
Mã:char kytu[100]; int solan[100]; int k=0;
Thank bạn nhiều nhưng mình muốn nhập 5 chuỗi 5 kí tự rồi mới đếm. Của bạn chỉ nhập 1 chuỗi mà hiện ra hết rồi!!![IMG]images/smilies/tongue.png[/IMG][IMG]images/smilies/tongue.png[/IMG]
-
27-11-2011, 05:54 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi clchicken
-
27-11-2011, 06:09 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
bạn muốn nhập xong ròi mới in ra thì sau khi nhập tất cả vào xong, tính toán xong thì mới in ra, có thể lưu kết quả vào mảng, vậy thôi
-
27-11-2011, 06:10 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Code đấy gọn gàng xúc tích mà thâm thúy.
Mình muốn bạn nội soi nó rồi ngộ ra mới hay [IMG]images/smilies/biggrin.png[/IMG]. Chứ giải thích lên rồi thì ko còn cái hay của nó nữa ^^
Cốt lõi nằm ở mảng count . Mảng count là mảng có các phần tử với mỗi vị trí (int) chính là biểu thị cho ký tự(ASCII -char). Nội dung của phần tử chính là số lần xuất hiện của nó.
Soi code đấy 1 hồi bạn sẽ nhận ra là : Ôi sao hay thế [IMG]images/smilies/biggrin.png[/IMG] rồi nói lời cảm ơn congdongcviet đi [IMG]images/smilies/biggrin.png[/IMG]
-
27-11-2011, 07:06 PM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mã:#include <stdio.h>#include <conio.h>#include <string.h>int main(){ char s[100]; int i,j,danhdau[100],dem[100]; printf(" nhap vao 1 chuoi: "); gets(s); for(i= 0; i<strlen(s); i++) { danhdau[i] = 0; dem[i] = 1; } char kytu[100]; int solan[100]; int k=0; for(i=0; i<strlen(s);i++) { if(danhdau[i] ==0 ) { for(j=i+1;j<strlen(s); j++) { if(s[i] == s[j]) { dem[i] ++; danhdau[j]=1; } } kytu[k] = s[i]; solan[k] = dem[i]; k++; } } for(i=0; i<k; i++) printf(" Kytu : %c xuat hien %d lan",kytu[i],solan[i]); getch();}
-
28-11-2011, 01:24 PM #9Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi kidteam
-
28-11-2011, 02:54 PM #10Junior Member
- Ngày tham gia
- Sep 2015
- Đang ở
- 89 Tam Trinh - Hoàng Mai - Hà Nội
- Bài viết
- 0
Bạn thử code của mình xem, đây là code đọc 1 chuỗi kí tự rồi in ra số lần xuất hiện của các kí tự có mặt trong xâu đó:
Mã:#include <stdio.h> #define MAX 26 #include <conio.h> int main(void) { int i = 0, cout[MAX] = {0}; char c = '\0'; printf("Please enter a line of text: "); c = getchar(); while (c != ' ' && c>= 0) { if (c <= 'z' && c >= 'a'); ++cout[c - 'a']; c =getchar(); } for (i = 0; i< MAX; ++i) { if(cout[i] > 0) printf("The letter '%c' appears %d time(s). ", 'a'+i, cout[i]); } return 0; getch(); }
Bất chấp những lầm tưởng phổ quát, hồ hết những người có âm đạo đều khó lên đỉnh khi bị kích thích âm đạo. Tuy nhiên, điều đó không có tức thị nó không thể vui được! Việc xâm nhập vào âm đạo bằng...
Quý bà giải tỏa bằng việc kích...