Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Имам код който се опитвам да променя но нещо не се получава, ако някой може да помогне

Featured Replies

#include <string>

#include <iostream>


using namespace std;


int Masiv[100][100];


 void zapalniMasiva( int n) {

     int broyelementi = n * n;

     int poziciaX = n / 2;

     int poziciaY = n % 2== 0 ? n / 2 - 1 : n / 2 ;

     int posoka = 0;

     int broykaStapki = 1;

     int stapkaPozicia = 0;

     int stapkaZaSmyana = 0;


     for (int i = 1; i < broyelementi+1; i++) {
         

       Masiv[poziciaY][poziciaX] = i;


       if (stapkaPozicia < broykaStapki) {

          stapkaPozicia++;
          

          if(i==1)

                  posoka=2;

       } else {

          stapkaPozicia = 1;


          if(stapkaZaSmyana == 1) {

            broykaStapki++;

          }

          stapkaZaSmyana = (stapkaZaSmyana + 1) % 2;


          posoka = (posoka + 1) % 4;

       }

       switch (posoka) {

          case 0: poziciaY++; break;

          case 1: poziciaX--; break;

          case 2: poziciaY--; break;

          case 3: poziciaX++; break;

       }

     }

  }


int main(){

    int N=0;

    do{

        printf("Vavedete razmer(samo ne4etni 4isla):");

        scanf("%d",&N);

        }while(N%2==0 && N<3); //proveryavame za ne4etno, polojitelno i po goliamo ot 3 - nyama smisal za 1 !


    zapalniMasiva(N);

 

    for (int i = 0; i < N; i++) {

       for (int j = 0; j < N; j++) {

          printf("%3d ", Masiv[j]);

       }

      printf("\n");

     }

    system("pause");

    return 0;


}

 

програмата е за двумерен масив А(N,N) който който подрежда масива по този начин 9,2,3

                                                                                                                                              8,1,4

                                                                                                                                              7,6,5

а на мен ми трябва да го подреди така 1,4,9,16

                                                                  2,3,8,15

                                                                  5,6,7,14

                                                                  10,11,12,13

 

#include <stdio.h>

int masif[100][100];

void zapylnimasiva(int n)
{
	int i, j;
	if (n == 1)
	{
		masif[0][0] = 1;
		return;
	}
	zapylnimasiva(n - 1);
	for (j = 0; j < n; j++)
	{
		masif[j][n - 1] = n * n - j;
	}
	j--;
	for (i = n - 2; i >= 0; i--)
	{
		masif[j][i] = masif[j][i + 1] - 1;
	}
}

void otpechataimasiva(int n)
{
	int i, j;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			if (j == 0) printf("\n");
			printf("%d\t", masif[i][j]);
		}
	}
}


int main()
{
	int n;
	printf("vavedi n -> ");
	scanf("%d", &n);
	zapylnimasiva(n);
	otpechataimasiva(n);
	return 0;
}

С рекурсия най добре.

 

Както са казали великите програмисти на времето, като ползваш рекурсия, компютъра води счетоводството

преди 2 часа, Реджеп Иведик написа:

С рекурсия най добре.

И без не е зле:

void zapylnimasiva(int n)
{
  int i, j;
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) {
      if (j > i) { 
        masif[i][j] = (j+1)*(j+1) - i;
      } else {
        masif[i][j] = i*i + j + 1
      }
    }
  }
}

 

Редактирано от flare (преглед на промените)

  • Автор

Мерси много бая време се чудих как става

преди 8 часа, Реджеп Иведик написа:

#include <stdio.h>

int masif[100][100];

void zapylnimasiva(int n)
{
	int i, j;
	if (n == 1)
	{
		masif[0][0] = 1;
		return;
	}
	zapylnimasiva(n - 1);
	for (j = 0; j < n; j++)
	{
		masif[j][n - 1] = n * n - j;
	}
	j--;
	for (i = n - 2; i >= 0; i--)
	{
		masif[j][i] = masif[j][i + 1] - 1;
	}
}

void otpechataimasiva(int n)
{
	int i, j;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			if (j == 0) printf("\n");
			printf("%d\t", masif[i][j]);
		}
	}
}


int main()
{
	int n;
	printf("vavedi n -> ");
	scanf("%d", &n);
	zapylnimasiva(n);
	otpechataimasiva(n);
	return 0;
}

С рекурсия най добре.

 

Както са казали великите програмисти на времето, като ползваш рекурсия, компютъра води счетоводството

Мерси много.Бая време мислих как става и не можех да се сетя

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.