Bạn sai ở dòng này:for (j=0;j<=n;j++)
Sửa thành:
for (j=0;j<n;j++)
printf(((j==n-1)||(i==n-1)||(j<n-i))?"*":" ");
Đề :Viết Pt nhập một số nguyên,in ra màn hình các dấu sao.
Ví dụ :nhập n =7
Hình như thế này các anh à:
Em làm như sau:
Code:#include<stdio.h> #include<conio.h> main() { clrscr(); int n,i,j; printf("nhap n:"); scanf("%d",&n); for (i=0;i<n;i++) { for (j=0;j<=n;j++) printf("*"); printf("\n"); } getch(); }
Nhưng lại in ra hình vuông đầy :
********
********
********
********
********
********
********
********
Anh chị nào giúp em giải bài này được không ạ
Đã được chỉnh sửa lần cuối bởi duyanh_28 : 25-12-2007 lúc 06:36 PM.
Bạn sai ở dòng này:for (j=0;j<=n;j++)
Sửa thành:
for (j=0;j<n;j++)
printf(((j==n-1)||(i==n-1)||(j<n-i))?"*":" ");
Bạn vào đây xem nè, bài của bạn cũng tương tự như bài này thôi.
http://forums.congdongcviet.com/showthread.php?t=4829
Ta là ai không quan trọng, điều ta làm sẽ khẳng định con người ta!
Đã được chỉnh sửa lần cuối bởi duyanh_28 : 25-12-2007 lúc 09:11 PM.
Ráng đọc đi
Chẳng qua là ứng với từng vị trí thì in ra thôi.
Nó tương đương với
if (j==n-1) printf("*");//Ki tu cuoi cung cua mot hang luon là dấu *
else if (i==n-1) printf("*"); // kí tự của hàng cuối cùng là dấu *
else if (j<n-i) printf("*");//Trong các trường hợp khác, nếu j thuộc [0,n-i] thì kí tự đó là *
else printf(" ");
bạn hiểu hơn rồi chứ?