30/09/2018, 16:25

Viết chương trình in ra một tam giác cân?

// chuong trinh in ra tam giác cân bang các dau *

int main ()
{
int n,i,j;
printf("nhap chieu cao tam giac:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("
");
}
getch();
}

Cho em hỏi là chỗ vòng lặp for thứ 2 và thứ 3 như thế nào vậy, em không hiểu?

Nguyễn Xuân Phúc viết 18:39 ngày 30/09/2018
   for(j=1;j<=n-i;j++)
       printf(" ");/*in ra màn hình khoảng trắng đến vị trí thứ n-i */
   for(j=1;j<=2*i-1;j++)
       printf("*"); /*tiếp tục in ra màn hình * đến vị trí 2*i-1 */
   printf("\n"); /* chuyển xuống hàng tiếp theo */

http://codepad.org/DG9dYAla

nhatlonggunz viết 18:29 ngày 30/09/2018

Tại sao lại là 2*i - 1 anh nhỉ

nhatlonggunz viết 18:40 ngày 30/09/2018

Bạn nên dùng Markdown để dễ nhìn code
Cách dùng:

Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void main() { } ``` Và đừng quên ``` ở cuối Kết quả void main() { } Ví dụ cho Pascal Nội dung: ``` Program HelloWorld; Begin WriteLn('Hello world!') {no ";" is required after the last statement of a block - adding one adds a "null stateme…

Nguyễn Xuân Phúc viết 18:42 ngày 30/09/2018

@nhatlonggunz nên lấy giấy có ô e viết ra là sẽ thấy. Giống như @BreakDown nói, ngồi ngẫm nghĩ chút là ra à

Anh viết 18:41 ngày 30/09/2018
#include <stdio.h>

int main()
{
 float i,j,h,n;
 begin:
clrscr();
printf("\n Nhap h:");
scanf("%f", &h);
if (h > 25 || h<2)
	goto begin;
for (i=1;i<=h;i++)
	printf(" ");
printf("*");
printf("\n");
n=h;
for (j=2;j<h;j++)
{
	n-=1;
	for (i=1;i<=n;i++)
		printf(" ");
	printf("*");
	for(i=1;i<(h-n)*2;i++)
		printf(" ");
	printf("*");
	printf("\n");
}
for (i=1;i<=h;i++)
printf(" *");
getch();
return 0;
 }

VD: http://codepad.org/rU7C44HL

Nguyễn Xuân Phúc viết 18:33 ngày 30/09/2018
#include <stdio.h>
#include <stdlib.h>


int main ()
{
    int n,i,j;
    printf("nhap chieu cao tam giac:");
    scanf("%d",&n);
    n=10;
    printf("\n");
    for(i=1;i<=n;i++)
    {
       for(j=1;j<=n-i;j++)
           printf(" ");/*in ra màn hình khoảng trắng đến vị trí thứ n-i */
       for(j=1;j<=2*i-1;j++)
       {
         if (j==1||j==2*i-1)
             printf("*"); /*tiếp tục in ra màn hình * tại vị trí 1 và 2*i-1 */
         else 
             printf (" ");
       }
       printf("\n"); /* chuyển xuống hàng tiếp theo */
       if (i==n-1) /* đến hàng cuối cùng thì in ra cạnh đáy của tam giác*/
       {  
          for(j=1; j<=2*n-1;j++) 
               printf ("*");
          break ;
       
       }
    }
}

Bài vẽ một tam giác cân rỗng, mình sửa lại và bổ sung một ít bài của ban @slaomoking.

Hoang Anh Nguyen viết 18:30 ngày 30/09/2018

sao code của bác nó ra mà nó k ngưng lại cho xem v. thêm getch dô thì nó sai

Mai Nguyễn viết 18:30 ngày 30/09/2018

Thế code vẽ ra tam giác cân ngược thì sao ạ? em ngồi mò mãi k ra :(( vẽ xuôi thì vẽ đc :((

Người bí ẩn viết 18:33 ngày 30/09/2018

Thì cho vòng lặp nó chạy ngược về thôi

Quang viết 18:40 ngày 30/09/2018

bạn khai báo thử viện chưa. chưa khai báo thư viện thì sai là đúng rồi!

Truong_Nguyen viết 18:41 ngày 30/09/2018

anh cho em hỏi 1 chút ạ ? ở bài của anh em có chép code và chạy thử sau đó viết lại theo ý tưởng của em nhưng ở đk cuối cùng “” if ( i==n-1) ấy ạ em không dùng lệnh " break; " thì nó tiếp tục in thêm 2 ký tự ** cách nhau 3 khoảng trắng , còn nếu em để lệnh " break;" thì vẫn đúng . anh có thể giải thích cho em được không ạ ? chức năng của lệnh " break;" ở đây là gì ạ

Hoài Phan viết 18:34 ngày 30/09/2018

cho em hỏi vòng lặp for thứ 2 chỉ thực hiện một lần rồi chuyển xuống vòng lặp thứ 3 rồi thực hiện lại vòng lặp đầu phải không ạ??

Bài liên quan
0