Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Từng bước phân tích code C

  1. #1
    Ngày gia nhập
    08 2008
    Bài viết
    7

    Mặc định Từng bước phân tích code C

    Đây là lần đầu mình post bài (có gì các bạn ủng hộ và đừng chê cười) !
    Xét ví dụ : nhập vào chiều cao của một tam giác, in ra màn hình một tam giác đặc.
    Code:
    /* Bai tap 1_92 - In hinh tam giac dac */
    #include <stdio.h>
    #include <conio.h>
    
    void main()
    {
      int n, i, j;
    
      printf("\nNhap chieu cao cua hinh tam giac : ");
      scanf("%d", &n);
    
     for (i=0; i<n; i++)
      {
        for (j=n-1; j>i; j--)
          printf(" ");
        for (j=0; j<i*2+1; j++)
          printf("*");
        printf("\n");
      }
    
      getch();
    }
    Phân tích nhé :
    Giả sử ta nhập vào chiều cao của tam giác là 3, thì tương ứng n=3. Phân tích đoạn mã tô màu đỏ như sau :
    Đầu tiên, giá trị của i = 0 thực thi như sau :
    j = 2
    in ra " "

    j = 1
    in ra " "
    tong cong in ra " " <= 2 khoảng trắng

    j = 0
    in ra = *
    in thêm \n
    TONG HET LA " *\n"

    Tiếp tục, i tăng lên 1
    i = 1 thực thi như sau :

    j = 2
    in ra " "
    tong cong in ra " "

    j = 0
    in ra *
    j = 1
    in ra *
    j = 2
    in ra *
    tong cong in ra ***
    in thêm \n
    TONG HET LA " ***\n"

    i = 2
    {
    j = 2 > i là vô lý nên không
    thuc thi lenh in " "

    j = 0
    in ra *
    j = 1
    in ra *
    j = 2
    in ra *
    j = 3
    in ra *
    j = 4
    in ra *
    in thêm \n
    TONG HET LA "*****\n"

    Kết quả :
    Nhap chieu cao cua hinh tam giac : 3
        *
      ***
    *****

  2. #2
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Nghe hay đấy vậy bạn thử xuất ra màn hình 1 hình tam giác ngược xem
    VD
    Code:
    *****
     ***
      *

  3. #3
    Ngày gia nhập
    11 2006
    Bài viết
    633

    for (j=n-1; j>i; j--)
    Nếu tôi vẫn cố gắng dùng j++ thì sao? Có được ko?

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Cám ơn bạn đã tham gia chia sẻ tại cộng đồng, (thay mặt ban quản trị - langman)


    sẽ ko ai del bài viết của bạn đâu.

    P/S : bạn có thể update thêm nhiều ý tưởng để bài viết của bạn có ích hơn cho các bạn mới học C được ko....


    ( bạn cứ rely đi, mình sẽ gộp nó vào cho)
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  5. #5
    Ngày gia nhập
    08 2008
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi huynguyen Xem bài viết
    Nếu tôi vẫn cố gắng dùng j++ thì sao? Có được ko?
    Nếu dùng j++ thì điều kiện j>i là luôn đúng, chắc vòng lặp sẽ chạy hoài quá !
    (Mình hiểu dụng ý của các bạn, các bạn thật là tốt, mình cảm ơn nhiều lắm)
    Đã được chỉnh sửa lần cuối bởi LEMINHMAN1 : 14-04-2009 lúc 07:36 PM.

  6. #6
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Mặc định Từng bước phân tích code C

    Trích dẫn Nguyên bản được gửi bởi huynguyen Xem bài viết
    Nếu tôi vẫn cố gắng dùng j++ thì sao? Có được ko?
    Ồ tất nhiên là vẫn ok rồi.

  7. #7
    Ngày gia nhập
    08 2008
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi trungkien45 Xem bài viết
    Nghe hay đấy vậy bạn thử xuất ra màn hình 1 hình tam giác ngược xem
    VD
    Code:
    *****
     ***
      *
    Code:
    #include<stdio.h>
    #include<conio.h>
    void main(void)
    {
    	int ia,ib,ic;
    	printf("Nhap n : ");
    	scanf("%d",&ia);
    	for(ib=ia-1;ib>=0;ib--)
    	{
    		for(ic=1;ic<ia-ib;ic++)
    		printf(" ");
    		for(ic=2*ib+1;ic>0;ic--)
    		printf("*");
    		printf("\n");
    	}
    	getch();
    }
    Hì, làm mãi mới được code này...
    Đã được chỉnh sửa lần cuối bởi LEMINHMAN1 : 16-04-2009 lúc 08:31 PM.

  8. #8
    Ngày gia nhập
    03 2009
    Bài viết
    1

    Trích dẫn Nguyên bản được gửi bởi trungkien45 Xem bài viết
    Nghe hay đấy vậy bạn thử xuất ra màn hình 1 hình tam giác ngược xem
    VD
    Code:
    *****
     ***
      *
    Code:
    for( int i =n -1; i >=0; i--) { for ( int k=0 ; k< n-i-1 ;k++) {printf(" "); } for( int j =0; j< i*2+1 ; j++) {printf("*"); } printf("\n"); }
    đổi ngược lại thì cũng ko có j thay đổi cho lắm .

Các đề tài tương tự

  1. Tại sao lại bỏ Store Proceduce nếu code theo hướng Code First trong MVC3
    Gửi bởi rogerminh2401 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 5
    Bài viết cuối: 02-11-2012, 08:22 PM
  2. Trả lời: 5
    Bài viết cuối: 27-04-2012, 07:51 PM
  3. compiler Warning: Unreachable code và chạy sai trong khi code đúng. Vì sao?
    Gửi bởi lovemoney trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 19
    Bài viết cuối: 19-01-2012, 10:02 PM
  4. Bài tập C++ Nhập code và name sv vào in ra thì name in đúng nhưng code thì in ra cả 2 code lẫn name
    Gửi bởi spacy0212 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 27-09-2011, 08:47 AM
  5. Code quản lý sinh viên bằng danh sách lối vòng. Giúp mình thay đổi code kế thừa?
    Gửi bởi caocanha trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 6
    Bài viết cuối: 04-05-2009, 03:39 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn