| | Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! | |
| | Tác giả | Thông điệp |
---|
haph86 Gà mới lớn
Tổng số bài gửi : 40 Join date : 04/06/2009
| Tiêu đề: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! Tue Jun 23, 2009 10:11 am | |
| Đề04_Q2: 1. Yêu cầu: - Nhập chuỗi - Đếm số lần xuất hiện ký tự ch - Xóa bỏ các ký tự space ( cách ) ở đầu chuỗi 2. Hướng giải quyết: - Ý 1 và 2 mọi người làm quen rồi, mình ko đề cập tới nữa nhé - Ý3: Chú ý là đề bài chỉ yêu cầu: "the program must be divided into modules" -> có thể viết bao nhiêu modules ( hàm ) đều được. Vậy ở đây mình sẽ xây dựng thêm một hàm "xóa ký tự tại vị trí k" void del(int k, char a[]); Sau đó ta viết hàm xóa ký tự space ở đầu: void trim_space(char a[]) Trong thân hàm ta chỉ cần thực hiện đơn giản vòng lặp while: while(phần tử đầu tiên còn = ký tự space) { xóa ký tự tại vị trí 0 }; Anh em thử làm và hồi âm nhé, nều chưa được thì mình mới post code lên | |
| | | haph86 Gà mới lớn
Tổng số bài gửi : 40 Join date : 04/06/2009
| Tiêu đề: Re: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! Tue Jun 23, 2009 11:01 am | |
| Đề05 Q21. Yêu cầu: - Nhập N chuỗi ( 0 - Tính độ dài của chuỗi có... độ dài lớn nhất (max length) - In ra các chuỗi có độ dài bằng độ dài lớn nhất vừa tìm được 2. Giải quyết: - Nhập N chuỗi: Dùng mảng hai chiều để lưu trữ N chuỗi. Có thể coi như sau: Là mảng một chiều gồm N phần tử, mỗi phần tử con lại là một chuỗi. Vậy mảng để sử dụng là: char arr[50][100]; ( chỉ số 50 ứng với số N tối đa, chỉ số 100 ứng với độ dài tối đa của mỗi chuỗi con ) Vậy hàm của ta sẽ là: void input(int *N, char arr[][100]); + Nhập N bình thường ( thông qua con trỏ ) + Chạy vòng lặp N lần, mỗi lần nhập vào một chuỗi thứ i thông qua hàm: gets(a[i]); - Tìm độ dài của chuỗi dài nhất: + Khai báo biến MaxL để lưu giá trị độ dài lớn nhất sẽ tìm được + Khởi tạo MaxL = độ dài chuỗi đầu tiên ( strlen(a[0] ) + Chạy vòng lặp N lần, so sánh MaxL với độ dài chuỗi đang xét ( strlen(a[i] ). Nếu MaxL < strlen(a[i]) thì gán MaxL=strlen(a[i]); + Kêt thúc hàm, MaxL mang giá trị cần tìm. Return MaxL cho hàm để in ra kết quả trong hàm main => Hàm: int MaxLength(int N, char arr[][100]); - In ra các chuỗi có độ dài bằng MaxL + Gọi hàm MaxLength để tìm độ dài lớn nhất, gán bằng m ( m = MaxLength(N,arr); ) + Chạy vòng lặp, so sánh độ dài chuỗi thứ i đang xét có bằng m không, nếu có thì in ra => Hàm: void display(int N, char arr[][100]); Anh em ngâm cứu và hồi âm nhé, mình sẽ post code sau | |
| | |
Join date : 01/01/1970
| Tiêu đề: Re: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! Tue Jun 23, 2009 11:07 pm | |
| | |
| | | haph86 Gà mới lớn
Tổng số bài gửi : 40 Join date : 04/06/2009
| Tiêu đề: Re: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! Wed Jun 24, 2009 10:02 am | |
| Đề06 Q2 1. Yêu cầu: - Nhập chuỗi - Đềm từ - Xóa ký tự space ( dấu cách ) tại vị trí đầu và cuối của chuỗi ( nếu có ) 2. Giải quyết: - Nhập chuỗi
- Đếm từ: + Khái niệm từ: nhóm ký tự khác space liền nhau + VD: Cong hoa x4 hoi -> 4 từ + Khới tạo biến dem=0; + Duyệt chuỗi, tìm kí tự khác ' ' (space) đầu tiên, tăng biến dem; break để thoát khỏi vòng lặp; + Duyệt chuỗi từ vị trí kế tiếp vị trí vừa tìm được. Nếu gặp ký tự nào khác ' ', khác NULL và ký tự trước nó là ' ' thì tăng biến dem + in ra gia tri bien dem, chính là số từ của chuỗi.
- Xóa ' ' tại vị trí đầu tiên và cuối cùng của chuỗi ( nếu có ) + Xây dựng hàm xóa ký tự tại vị trí k của chuỗi a[]; // void del(int k, char a[]); + Chạy vòng lặp while: chừng nào a[0] còn == ' ' thì còn xóa ký tự tại vị trí 0 // del(0,a); + Chạy vòng lặp while: chừng nào a[n-1] còn == ' ' thì còn xóa ký tự tại vị trí n-1 ( a[n-1] là ký tự liền kề trước ký tự NULL của chuỗi ) // với n=strlen(a); -> xóa được tất cả các ký tự space thừa tại vị trí đầu tiên và cuối cùng của chuỗi. | |
| | | haph86 Gà mới lớn
Tổng số bài gửi : 40 Join date : 04/06/2009
| Tiêu đề: Re: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! Fri Jun 26, 2009 7:55 pm | |
| | |
| | |
Join date : 01/01/1970
| Tiêu đề: Re: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! Sat Jun 27, 2009 12:55 am | |
| hehehe làm gì có ai làm hehehe | |
| | | spyware Đại Bàng Tinh
Tổng số bài gửi : 116 Join date : 04/06/2009 Age : 39 Đến từ : HN
| Tiêu đề: Re: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! Sun Jun 28, 2009 12:44 pm | |
| có nè, nhưng 6_2 hơi lạ chút, lúc thì bảo chỉ cắt đầu, lúc lại bảo cắt đầu cắt đuôi. xem lại phần đề sẽ thấy - code thế này được hem - mới edit - Code:
-
#include<conio.h> #include<stdio.h> #include<string.h> // declare all function void input(char s[]); int count(char s[]); void ftrim(char s[]); void ltrim(char s[]); void trim(char s[]); //define all function void main() { int i,c; char str[100]; clrscr(); input(str); printf("\nNumbers of words is: %d",count(str)); trim(str); getch(); } void input(char s[]) { printf("\nInput string:"); fflush(stdin); gets(s); } int count(char s[]) { int c=0,i,j,len; len=strlen(s); for(i=0;i<len;i++) { if(s[i]!=' ' && s[i]!='\t') { c++; for(j=i+1;j<len;j++) { if(s[j]==' ' || s[j]=='\t') { i=j; break; } } } } return c; } void ftrim(char s[]) { int i,j,k,len; len=strlen(s); for(i=0;i<len;i++) if(s[i]!=' ' && s[i]!='\t') break; if(i) { for(j=i,k=0;j<len;j++) { s[k]=s[j]; k++; } s[k]=NULL; }
} void ltrim(char s[]) { int i,j,len; len=strlen(s); for(i=len-1;i>0;i--) if(s[i]!=' '&& s[i]!='\t') break; if(i!=len-1) s[i+1]=NULL; } void trim(char s[]) { int len; len=strlen(s); printf("\nLength of string before trim: %d",len); ftrim(s); ltrim(s); printf("\nString after trim:"); puts(s); printf("Length of string after trim: %d",strlen(s)); }
Được sửa bởi spyware ngày Mon Jun 29, 2009 8:09 pm; sửa lần 1. | |
| | | haph86 Gà mới lớn
Tổng số bài gửi : 40 Join date : 04/06/2009
| Tiêu đề: Re: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! Mon Jun 29, 2009 2:14 pm | |
| Không hiểu lắm Hiến ơi, " lúc cắt đầu, lúc cắt đuôi " là sao ? Theo đề bài, yêu cầu là: cắt tất cả các khoảng trống ( thừa ) ở đầu chuỗi hoặc cuối chuỗi - có kèm theo thông báo độ dài trước và sau khi cắt. Chưa hiểu ý anh em lắm :-?? | |
| | | spyware Đại Bàng Tinh
Tổng số bài gửi : 116 Join date : 04/06/2009 Age : 39 Đến từ : HN
| Tiêu đề: Re: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! Mon Jun 29, 2009 6:17 pm | |
| Q2: write a program to accept one strings, after that count the number of words and trim all space character at the last of string (you must print length of string before and after trim) - accept one string - count the number of words - trim all space character at the first and last of string (you must print length of string before and after trim) - vấn đề là mấy cái bộ đề này rất củ chuối, không đề nào khỏi sai cả, chắc phải kiến nghị nhà trường tôn trọng học viên hơn mới được - còn đề này thì cắt đầu hay cắt đuôi hay cả 2 cũng chỉ là ở thuật toán thôi, làm cả 2 phần đầu và đuôi cho nó quen thôi mà. | |
| | |
Join date : 01/01/1970
| Tiêu đề: Re: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! Mon Jun 29, 2009 8:31 pm | |
| (ha` pót code de 04 đi câu xóa chưa làm đc nè) làm đc rồi ^_^ pót code lên chém tí nhá làm theo hướng dẫn của bác Ha huyền . - Code:
-
#include<stdio.h> #include<conio.h> #include<string.h>
void accept(char s[],char *ch); int count(char *ch,char s[]); void del(int k,char s[]); void trim(char s[]);
void main() { char s[100],ch; clrscr(); accept(s,&ch); count(&ch,s); trim(s); getch(); }
void accept(char s[],char *ch) { printf("\nInput string: "); fflush(stdin); gets(s); printf("\nInput charater: "); *ch=getchar();
}
int count(char *ch,char s[]) { int i,dai,dem=0; dai=strlen(s);
for(i=0;i<dai;i++) { if(s[i]==*ch) dem++; } printf("\nNumber of %c is: %d",*ch,dem); return dem; } void del(int k,char s[]) { int i,dai; dai=strlen(s); for(i=k;i<dai;i++) { s[i]=s[i+1]; } dai=dai-1;
} void trim(char s[100]) { // int i,dai,j; // dai=strlen(s); printf("\nString after trim: ");
while(s[0]==' ')
{ del(0,s);
} puts(s); }
| |
| | | haph86 Gà mới lớn
Tổng số bài gửi : 40 Join date : 04/06/2009
| Tiêu đề: Re: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! Mon Jun 29, 2009 10:34 pm | |
| Phải công nhận là bộ đề này nhiều chỗ rất không hợp lý, có những lúc gây ức chế cho mình khi giải quyết đề. Lúc nào a e thử đóng góp ý kiến xem sao. Chỉ sợ nhà trường đưa ra ý kiến đây chỉ là bộ đề tham khảo, đề thi sẽ chuẩn hơn thì... :-< nản quá ~X( | |
| | |
Join date : 01/01/1970
| Tiêu đề: Re: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! Tue Jun 30, 2009 11:14 pm | |
| thế thì mới có ít học sinh tiêu biểu ^_^ các bác cứ ra hợp lý các bác lên hết trang vàng à . phải vô lý cực ky vo lý thì mới loạn đầu lên mới ko co ai ở trang vàng .
(chém tý thôi nha đừng tưởng thật) | |
| | | Sponsored content
| Tiêu đề: Re: Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! | |
| |
| | | | Một số gợi ý giải quyết Q2 của các đề - a e tham khảo nhé! | |
|
Trang 1 trong tổng số 1 trang | |
Similar topics | |
|
| Permissions in this forum: | Bạn không có quyền trả lời bài viết
| |
| |
| |