Tam giác hình * trong c

Cho e hỏi đoạn code này là tam giác cân hình *, vậy là tam giác cân rỗng thì viết như thế nào ạ, mấy anh giúp e với. Tk!

#include <stdio.h>
#include <conio.h>
void main()
{
int h,i,j;
printf(“nhap chieu cao h: “);
scanf(”%d”,&h);
for(i=0;i<h;++i)
{
for(j=h-1;j>i;j–)
printf(" “);
for(j=0;j<i2+1;j++)
printf("
”);
printf("
");
}
getch();
}


// Ve tam giac can
#include <stdio.h>
#include <stdlib.h>

void main(int argc, char* argv[]){
int n = atoi(argv[1]);
for(int i=1;i<=n;i++){
   for(int j=1;j<=n-i;j++)
      printf(" ");
   for(int j=1;j<=2*i-1;j++)
      printf("%s", (i==1||i==n||j==1||j==2*i-1) ? "*" : " ");
   printf("
");
 }
}

Sai thì thôi nhé :sogood:

lỗi rồi anh ơi nhưng dù sao cũng cám ơn anh, anh giải thích dong này dùm em đc ko

printf(“%s”, (i==1||i==n||j==1||j==2i-1) ? "" : " ");

theo em chắc dùm hàm if @@!

[QUOTE=12520333;162244]lỗi rồi anh ơi nhưng dù sao cũng cám ơn anh, anh giải thích dong này dùm em đc ko[/QUOTE]
Lỗi gì ? Chạy ngon lành mà :sogood:

Build rồi chạy bằng cmd.
Còn không thì chỉnh lại tí ntn :

// Ve tam giac can
#include <stdio.h>
void main(){
int n;
printf("Nhap n: "); scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i;j++)
printf(" ");
for(int j=1;j<=2*i-1;j++)
printf("%s", (i==1||i==n||j==1||j==2*i-1) ? "*" : " ");
printf("
");
}
}
// Ctrl + F5 -> Xem kq

[QUOTE=12520333;162244]lỗi rồi anh ơi nhưng dù sao cũng cám ơn anh, anh giải thích dong này dùm em đc ko[/QUOTE]

printf("%s", (i==1||i==n||j==1||j==2*i-1) ? "*" : " ");

Dòng này cũng như lệnh if ấy.
Nếu (i==1||i==n||j==1||j==2i-1) thì in "" else in " " :sogood:

Thank anh nhiều… đoạn dưới chạy đc còn đoạn code trên chạy nó ko cho nhập n (kệ ko sao)…cho em hỏi luôn lệnh số mũ là pow thì mình phài luôn khai báo ntn sao : x=pow(double(i),double(j)); ??? hay còn cách khác nữa ko…

[QUOTE=12520333;162269]Thank anh nhiều… đoạn dưới chạy đc còn đoạn code trên chạy nó ko cho nhập n (kệ ko sao)…cho em hỏi luôn lệnh số mũ là pow thì mình phài luôn khai báo ntn sao : x=pow(double(i),double(j)); ??? hay còn cách khác nữa ko…[/QUOTE]

  • Đoạn trên Built ( Ctrl + Shift + B) rồi vào cmd chạy như hình ở trên post #5 kìa, không chạy trực tiếp.:shame:
  • “In C, only the version taking two double parameters exists with this name. The other overloads are onaly availble in C++.” - Pow function:sogood:

chưa hiểu lm’. lệnh nó ghi ntn là đúng, anh vdu thử xem :confused:

[QUOTE=12520333;162269]Thank anh nhiều… đoạn dưới chạy đc còn đoạn code trên chạy nó ko cho nhập n (kệ ko sao)…cho em hỏi luôn lệnh số mũ là pow thì mình phài luôn khai báo ntn sao : x=pow(double(i),double(j)); ??? hay còn cách khác nữa ko…[/QUOTE]

C++ : x = pow(i,j) với i,j là kiểu số (số nguyên (int,byte, long, long long,…) hay số thực (float,double,…))
C: x = pow(i,j) với i,j là kiểu double

VD:
double i = 2.0,j = 3.0,x;
x = pow(i,j);

[QUOTE=10520541;162270]- “In C, only the version taking two double parameters exists with this name. The other overloads are onaly availble in C++.” - Pow function:sogood:[/QUOTE]

Don’t forget auto casting in C++ :wink: