Vẽ hình chữ nhật bằng dấu * trong C

các anh cho em hỏi trong đoạn code trên thì i với j trong vòng lặp đónh vai trò là xét số dòng có đúng k ạ?

vòng lặp j để vẽ liên tục các dấu ‘*’ để tạo thành 1 hàng, còn vòng lặp i thì vẽ liên các hàng để tạo thành hcn bạn ạ,
sau mỗi hàng sẽ có 1 ký tứ xuống dòng ddeerr tạo thành hinh chữ nhật, nếu bạn bỏ dòng printf("\n") đi thì nó sẽ in ra ntn:

*********************************************************************

vậy là mình thực hiện vòng lặp for lồng trước khi thực hiện for ngoài đúng k bạn?

không bạn ạ, nó thục hiện tuần tự, vòng i sẽ thực hiện, sau đó vòng j sẽ thực hiện trong vòng i . Sau khi vòng j thực hiện xong thì in ký tự xuống dòng, sau đó thì lại ngược lên trên đầu vòng i

vd cr=5,cd=4

for(int i=1;i<=cr;i++)

chưa có gì xảy ra

for(int j=1;j<=cd;++)

khi kết thúc vòng j, sẽ in ra

****(con trỏ chuột đang nằm tại đây)

tiếp đến

printf("\n");

sẽ in ra

****
(con trỏ chuột đang nằm tại đây)

rồi lộn lên đầu vòng i. i++=2, i<5(i<cr) là đúng thì tiếp tục các câu lệnh trong vòng lặp i:

for(int j=1;j<=cd;++)

khi kết thúc vòng j thứ 2, sẽ in ra

****
****(con trỏ chuột đang nằm tại đây)

rồi

printf("\n");
****
****
(con trỏ chuột đang nằm tại đây)

cứ nt cho đến hết còng lặp i thì chúng ta sẽ có đc 1 hcn có dai=4, rộng =5

1 Like

ohhh, mình cám ơn. Mình hiểu bản chất vấn đề rồi :slight_smile:

1 Like
//in ra hinh chu nhat co (m,n) nhap tu ban phim
#include<stdio.h>
int main(){
	int m,n;
	printf("Nhap n:");scanf("%d",&n);
	printf("Nhap m:"); scanf("%d",&m);
	for(int i=1;i<=n;i++){
		for(int j=1;j<m;j++){
			printf(" * ");
		}
		printf(" *\n\n");
	}
	return 0;
}

Mình nháp đc cách này mà ko hiểu nó hoạt động kiểu j cả. Ai giúp mình đc ko. :slight_smile:

#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
	int n;
	printf("moi nhap n ");
	scanf_s("%d", &n);
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= 2 * n; j++)
		{
			printf("*");
		}
			printf("\n");
	}
}
1 Like

bạn ơi làm sao để post đáp án nhỉ

Đặt code vào trong cặp dấu ```(dấu huyền, tiếng anh gọi là backquote/backtick), ví dụ:

printf("Hello World!");
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?