Помош: Кратки програмки

  • Креатор на темата Креатор на темата back_rest
  • Време на започнување Време на започнување
Помош околу поместување на елементи од низа за К места лево или десно во зависност дали к е позитивен или негативен. C код.
 
Помош околу поместување на елементи од низа за К места лево или десно во зависност дали к е позитивен или негативен. C код.

Можно е да има некоја синтаксичка грешка, немав компајлер да ја проверам..
Код:
#include <stdio.h>
 
int main()
{
    int k,length,counter,shift;
    length = k = counter = shift = 0;
   
    printf("Broj na elementi na nizata>");
    scanf("%d",&length);
   
    //Декларирање и вчитување на низата
    int array[length];
    printf("Vnesi ja nizata\n");
    for(counter = 0; counter < length; counter++)
            scanf("%d",&array[counter]);
   
    printf("Za kolku mesta da se pomesti nizata>");
    scanf("%d",&k);
   
    if(k>0)//Поместување лево
      for(shift = 0; shift < k; shift++)
      {
        int temp = array[0];
        for(counter = 0; counter < length-1; counter++)
          array[counter] = array[counter+1];
        array[length-1] = temp;
      }
    else//Поместување десно
      for(shift = 0; shift < k*-1; shift++)
      {
        int temp = array[length-1];
        for(counter = length-1; counter >0 ; counter--)
          array[counter] = array[counter-1];
        array[0] = temp;
      }
     
      for(counter = 0; counter < length; counter++)
      printf("%d,",array[counter]);
     
      scanf("%d",&k);
   
    return 0;
}
 
Ако може помош за тие 2 програми во паскал:
1. Состави програма со која ќе се пресмета збирот од елементите на двоиндексните низи Am x n и Вm x n (Cmxn= Amxn + Bmxn)
2. Состави програма со која ќе се пресметаат збирот од елементите на двоиндексната низа Am x n на p-редицата и q-колоната
 
Совет како да го најдам inorder следбенико за дадена вреднос во бинарно пребарувачко дрво со рекурзија..
 
Дали може да добијам кратки информации за тоа како да ја изработам следнава програма:

Име на програмата (Шах-Топ).
Да се направи програма во која за внесени позиции (координати) на топот, се испишуваат сите полиња кои може да ги бие топот.
Шаховската табла треба да се бележи идентично со A,B,C-1,2,3 итн, и исписите на полињата кои се бијат да бидат со ознаки A1,A2,G5...итн.
Благодарам.
 
Дечки, ми треба помош со задачава. Сум ја почнал до негде, ама не знам да ја завршам. Треба да се избришат дупликати од низа. Еве го мојот код
Код:
#include<stdio.h>
int main()
{
    int niza[100],i,golemina,j,duplikat;
    printf("Vnesete ja goleminata na nizata:\n");
    scanf("%d",&golemina);
    printf("Vnesete gi elementite na nizata:\n");
    for(i=0;i<golemina;i++)
        scanf("%d",&niza[i]);
    for(i=0;i<golemina-1;i++)
    {
      for(j=i+1;j<golemina;j++)
      {
          if(niza[i]==niza[j])
          {
              niza[j]=niza[j+1];
 
          }
      }
    }
    for(i=0;i<golemina;i++)
        printf("%d ",niza[i]);
    return 0;
}
Што треба да се додаде и измени од постоечково до сега евентуално....Ќе бидам многу благодарен за помошта. Фала однапред :)
 
Дечки, ми треба помош со задачава. Сум ја почнал до негде, ама не знам да ја завршам. Треба да се избришат дупликати од низа. Еве го мојот код
Код:
#include<stdio.h>
int main()
{
    int niza[100],i,golemina,j,duplikat;
    printf("Vnesete ja goleminata na nizata:\n");
    scanf("%d",&golemina);
    printf("Vnesete gi elementite na nizata:\n");
    for(i=0;i<golemina;i++)
        scanf("%d",&niza[i]);
    for(i=0;i<golemina-1;i++)
    {
      for(j=i+1;j<golemina;j++)
      {
          if(niza[i]==niza[j])
          {
              niza[j]=niza[j+1];
 
          }
      }
    }
    for(i=0;i<golemina;i++)
        printf("%d ",niza[i]);
    return 0;
}
Што треба да се додаде и измени од постоечково до сега евентуално....Ќе бидам многу благодарен за помошта. Фала однапред :)
Повели...не е баш на твојот начин напишана :D Инаку ФИНКИ?
Код:
#include<stdio.h>
int main()
{
int niza[20],i,j,k,n;
 
printf("Vnesete ja dolzinata na nizata : ");
scanf("%d",&n);
 
printf("\nVnesete broevi: ");
for(i=0;i<n;i++)
scanf("%d",&niza[i]);
printf("\nNovodobienata niza e  : ");
for(i=0;i<n;i++)
{
  for(j=i+1;j<n;)
  {
      if(niza[j]==niza[i])
      {
        for(k=j;k<n;k++)
            niza[k]=niza[k+1];
          n--;
      }
      else
        j++;
  }
}
 
for(i=0;i<n;i++)
    printf("%d ",niza[i]);
return 0;
}
 
Повели...не е баш на твојот начин напишана :D Инаку ФИНКИ?
Код:
#include<stdio.h>
int main()
{
int niza[20],i,j,k,n;
 
printf("Vnesete ja dolzinata na nizata : ");
scanf("%d",&n);
 
printf("\nVnesete broevi: ");
for(i=0;i<n;i++)
scanf("%d",&niza[i]);
printf("\nNovodobienata niza e  : ");
for(i=0;i<n;i++)
{
  for(j=i+1;j<n;)
  {
      if(niza[j]==niza[i])
      {
        for(k=j;k<n;k++)
            niza[k]=niza[k+1];
          n--;
      }
      else
        j++;
  }
}
 
for(i=0;i<n;i++)
    printf("%d ",niza[i]);
return 0;
}
ФИНКИ, ФИНКИ.....
 
Дали може да добијам кратки информации за тоа како да ја изработам следнава програма:

Име на програмата (Шах-Топ).
Да се направи програма во која за внесени позиции (координати) на топот, се испишуваат сите полиња кои може да ги бие топот.
Шаховската табла треба да се бележи идентично со A,B,C-1,2,3 итн, и исписите на полињата кои се бијат да бидат со ознаки A1,A2,G5...итн.
Благодарам.

Па можеш шаховската табела да ја претставиш во матрица. Потоа кога ќе ти бидат дадени координатите, полиња кои тој топ може да ги напаѓа се полињата кои се наоѓаат во иста редица и во иста колона со полето каде што се наоѓа топот.
На пример ако ја гледаш табелата вака http://www.google.com/imgres?imgurl=http://0.tqn.com/d/chess/1/0/C/-/-/-/EmptyBoard.gif&imgrefurl=http://chess.about.com/od/rulesofchess/ss/Boardsetup.htm&h=624&w=624&sz=10&tbnid=F5DZiT4VCqL7rM:&tbnh=90&tbnw=90&zoom=1&usg=__LdJA3rQiQ6CL3jTFnW2O6Ja9ctc=&docid=i_cPogPVDQeLhM&sa=X&ei=i4agUu3rEs2rhAfA-IGACA&sqi=2&ved=0CDgQ9QEwBA
Tогаш ако ми бидат дадени координатите Е7, тогаш полиња кој овој топ може да ги нападне се Е8,Е6,Е7...Е1 и А7,B7...H7.
Нормално можеш и да не користиш матрица, да имаш 2 фор циклуси па за дадени координати A6 на пример прво ќе ги испечатиш сите координати кои ја содржат буквата А, па после сите координати кои ја содржат бројката 6.
 
Па можеш шаховската табела да ја претставиш во матрица. Потоа кога ќе ти бидат дадени координатите, полиња кои тој топ може да ги напаѓа се полињата кои се наоѓаат во иста редица и во иста колона со полето каде што се наоѓа топот.
На пример ако ја гледаш табелата вака http://www.google.com/imgres?imgurl=http://0.tqn.com/d/chess/1/0/C/-/-/-/EmptyBoard.gif&imgrefurl=http://chess.about.com/od/rulesofchess/ss/Boardsetup.htm&h=624&w=624&sz=10&tbnid=F5DZiT4VCqL7rM:&tbnh=90&tbnw=90&zoom=1&usg=__LdJA3rQiQ6CL3jTFnW2O6Ja9ctc=&docid=i_cPogPVDQeLhM&sa=X&ei=i4agUu3rEs2rhAfA-IGACA&sqi=2&ved=0CDgQ9QEwBA
Tогаш ако ми бидат дадени координатите Е7, тогаш полиња кој овој топ може да ги нападне се Е8,Е6,Е7...Е1 и А7,B7...H7.
Нормално можеш и да не користиш матрица, да имаш 2 фор циклуси па за дадени координати A6 на пример прво ќе ги испечатиш сите координати кои ја содржат буквата А, па после сите координати кои ја содржат бројката 6.

Јас на овој начин ја напраив

int i;
int hor;
int ver;
cout<<"Vnesi horizontalna pozicija na topot \n";
cin>>hor;
cout<<"Vnesi vertikalna pozicija na topot \n";
cin>>ver;
for (i=1;i<9;i++){
if(i!=hor)
printf("%c%d ",i+'A'-1,ver);
if(i!=ver)
printf("%c%d ",hor+'A'-1,i);
}
 
Код:
#include <stdio.h>
#define SIZE 8
int main()
{
  int board[SIZE][SIZE];
  int i,j;
  for(i=0; i<SIZE; i++){
      for(j=0; j<SIZE; j++)
      board[i][j]=(i+j)%2;
}
  for(i=0; i<SIZE; i++){
      for(j=0; j<SIZE; j++)
      putchar(board[i][j]?'1':'0');
      putchar('\n');
}
return 0;
}

Програмава е за печатење шаховска табла, некој да ми ги објасни двата for и putchar накрај како работат во програмава. фала однапред!!!
 
Програмава е за печатење шаховска табла, некој да ми ги објасни двата for и putchar накрај како работат во програмава. фала однапред!!!
Со форовите се изминува секое поле во таблата, еден фор за хоризонтално, еден за вертикално. putchar логично принта карактер.
Првиот putchar принта 1 или 0 во зависност од вредноста на board[i.][j] (тернарен if else оператор).
Вториот принта карактер за нова линија \n по секој изминат ред од таблата.
 
Код:
#include <stdio.h>
 
int main(){
 
  int n, i, j, pom;
  scanf("%d", &n);
  for(i = 0; i < n; i++){
  printf("*");}
  for(j = 0; j < n; j++){
    printf("\n");
    for(j = 0; j < n-1; j++)
      printf("*");
  }
  return 0;
  }

Што треба да изменам овде за да се принта за внес 5 во првиот ред 5 звезди и 5 реда и во секој нов ред една звезда помалце.
пр:
*****
****
***
**
*
фала однапред.
 
Код:
#include <stdio.h>
 
int main(){
 
  int n, i, j, pom;
  scanf("%d", &n);
  for(i = 0; i < n; i++){
  printf("*");}
  for(j = 0; j < n; j++){
    printf("\n");
    for(j = 0; j < n-1; j++)
      printf("*");
  }
  return 0;
  }

Што треба да изменам овде за да се принта за внес 5 во првиот ред 5 звезди и 5 реда и во секој нов ред една звезда помалце.
пр:
*****
****
***
**
*
фала однапред.


PHP:
int i=0,j=0,n;
    scanf("%d",n);
    for(i=0;i<n;i++) {
        for(j=i;j<n;j++)
            printf("*");
        printf("\n"); }
Вака, првиот фор ти е за броења на линиите, додека со вториот фор ги принташ ѕвездите. Така во првата итерација бидејќи I=j ќе се испринтаат толку ѕвезди колку што е n. Во втората итерација, i ќе се зголеми за 1 и вториот for ќе почне од 1 и ќе испечати една ѕвезда помалку, итн...
 
PHP:
for(j = 0; j < n; j++){
    for(i = 0; i < n-j; i++)
      printf("*");
    printf("\n");
  }

Почнуваш од i = 0 до N и внатре повторуваш од 0 до N-i пати. на крај ќе дојде N-N и ќе заврши програмата.

Едит:
Имал и побрзи :icon_lol:
 

Kajgana Shop

Back
На врв Bottom