Viết chương trình in ra các số nguyên từ 1 đến N2 theo hình xoắn ốc

Viết chương trình in ra các số nguyên từ 1 đến N[SUP]2[/SUP] theo hình xoắn ốc với N được nhập vào từ bàn phím. Ví dụ, với N=5 ta có:
12345
161718196
152425207
142322218
131211109
 

taplamhacker

♥ Thanh Trâm ♥
Reply: help me

bạn tham khảo thử nhé
[AH]
Mã:
#include <stdio.h>#include<conio.h>
int main()
{
	int n, w, hang, cot, chanhangtang, chanhanggiam, chancottang, chancotgiam;
 	int matran[12][12], tang, giam;
 	scanf("%d%*c",&n);
  	hang = cot = 0;
  	chanhangtang = chancottang = n-1;
  	chanhanggiam = chancotgiam = 0;
  	tang = 0;
  	for (w=0; w<n*n; w++)
  	{
     	matran[hang][cot]= w + 1;
     	switch(tang)
     	{
	 		case 0 : 
			 	if (cot < chancottang)
    				cot++;
                else
                {
                  tang++;     
                  chanhanggiam++;
                  hang++;
                }
                break;
       		case 1 : 
			   	if (hang < chanhangtang)
                   hang++;
      			else
                {
                  tang++;     
                  chancottang--;
                  cot--;
                }
                break;
  		 	case 2 : 
	   			if (cot > chancotgiam)
                   cot--;
                else
                {
                  tang++;     
                  chanhangtang--;
                  hang--;
                }
                break;
       		case 3 :
	    		if (hang > chanhanggiam)
                   hang--;
                else
                {
                  tang=0;     
                  chancotgiam++;
                  cot++;
                }
                break;
     	}
	}
	for (hang=0; hang < n; hang++)
  	{
  		printf("\n");
  		for (cot=0; cot < n; cot++)
      		printf("%4d", matran[hang][cot]);
  	}
  	getch();
}
[/AH]
 

Sửu Nguyễn

⭐️⭐️⭐️⭐️⭐️
Reply: help me

bạn tham khảo thử nhé
[AH]
Mã:
#include <stdio.h>#include<conio.h>
int main()
{
    int n, w, hang, cot, chanhangtang, chanhanggiam, chancottang, chancotgiam;
     int matran[12][12], tang, giam;
     scanf("%d%*c",&n);
      hang = cot = 0;
      chanhangtang = chancottang = n-1;
      chanhanggiam = chancotgiam = 0;
      tang = 0;
      for (w=0; w<n*n; w++)
      {
         matran[hang][cot]= w + 1;
         switch(tang)
         {
             case 0 : 
                 if (cot < chancottang)
                    cot++;
                else
                {
                  tang++;     
                  chanhanggiam++;
                  hang++;
                }
                break;
               case 1 : 
                   if (hang < chanhangtang)
                   hang++;
                  else
                {
                  tang++;     
                  chancottang--;
                  cot--;
                }
                break;
               case 2 : 
                   if (cot > chancotgiam)
                   cot--;
                else
                {
                  tang++;     
                  chanhangtang--;
                  hang--;
                }
                break;
               case 3 :
                if (hang > chanhanggiam)
                   hang--;
                else
                {
                  tang=0;     
                  chancotgiam++;
                  cot++;
                }
                break;
         }
    }
    for (hang=0; hang < n; hang++)
      {
          printf("\n");
          for (cot=0; cot < n; cot++)
              printf("%4d", matran[hang][cot]);
      }
      getch();
}
[/AH]

Nếu anh không nhầm thì bạn ấy hỏi về Pascal hôm qua thấy post :)
 

Thống kê

Chủ đề
100,958
Bài viết
467,911
Thành viên
339,939
Thành viên mới nhất
LOng12325
Top