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

  • Креатор на темата Креатор на темата back_rest
  • Време на започнување Време на започнување
Здраво дечки, ми треба помош....задачата е од дадена низа, да се најде најголемата растечка. Кодот стигнав тука до негде...п.с. ги зедов вашите претходни критики во предвид. Фала однапред :)
Код:
#include<stdio.h>
int main()
{
    int niza[100], golemina, i, max, pom = 0;
    printf ("Vnesete ja goleminata: \n");
    scanf ("%d", &golemina);
    printf ("Vnesi gi elementite: \n");
    for (i=0; i<golemina; i++)
        scanf ("%d", &niza[i]);
    for (i=0; i<golemina; i++)
    {
        max = 1;
      while (niza[i] < niza[i + 1])
      {
          max++;
          i++;
          if (pom<max) pom=max;
          if (i >= golemina-1)break;
      }
    }
    printf("pom = %d \n",pom);
    printf("max = %d",max);
    return 0;
}
 
Здраво дечки, ми треба помош....задачата е од дадена низа, да се најде најголемата растечка. Кодот стигнав тука до негде...п.с. ги зедов вашите претходни критики во предвид. Фала однапред :)

Код:
#include<stdio.h>
int main()
{
    int niza[100], golemina, i, dolzina,index,pom;
    printf ("Vnesete ja goleminata: \n");
    scanf ("%d", &golemina);
    printf ("Vnesi gi elementite: \n");
    for (i=0; i<golemina; i++)
        scanf ("%d", &niza[i]);
  dolzina=0;
 
      for(i=0;i<golemina;i++)
{ 
        pom=1;
      j=i;
      while(niza[j]<niza[j+1])
{
        pom++;
        j++;
}
      if( pom>dolzina)
{
      index=i;
      dolzina=pom;
}
}
 
printf("Dolzinata e %d",dolzina);
 
printf("nizata e:");
 
for(i=index;i<=index+dolzina-1;i++)
printf("%d",niza[i]);
 
return 0;
}
 
einstein_2012.jpg



Така да нема да е лошо да се обидеш со 2-3 реченици да кажеш што како направи и сите да научат нешто :)
 
дали со оваа програма би се одредило дали внесената матрица е симетрична во однос на главната дијагонала?

PHP:
#include <stdio.h>
#define MAX 100
 
int main()
{
    int a[MAX][MAX], simetricna=1, i,j,n;
    printf("Vnesi ja goleminata na matricata\n");
    scanf("%d", &n);
    printf("Vnesi ja matricata\n");
    for(i=1; i<=n; i++)
        {
          for(j=1; j<=n; j++)
          {
              printf("a[%d][%d] = ", i,j);
              scanf("%d", &a[i][j]);
          }
        }
    for(i=1; i<=n; i++)
        {
          for(j=1; j<=n; j++)
          {
              if(a[i][j] != a[j][i])
              {
                simetricna = 0;
                break;
              }
          }
        }
    printf("Matricata: \n\n");
    for(i=1; i<=n; i++)
        {
          for(j=1; j<=n; j++)
          {
              printf("%d ", a[i][j]);
          }
        printf("\n");
        }
    if(simetricna)
      printf("Matricata e simetricna\n");
    else
      printf("Matricata ne e simetricna\n");
    return 0;
}
 
дали со оваа програма би се одредило дали внесената матрица е симетрична во однос на главната дијагонала?

PHP:
#include <stdio.h>
#define MAX 100
 
int main()
{
    int a[MAX][MAX], simetricna=1, i,j,n;
    printf("Vnesi ja goleminata na matricata\n");
    scanf("%d", &n);
    printf("Vnesi ja matricata\n");
    for(i=0; i<n; i++)
        {
          for(j=0; j<n; j++)
          {
              printf("a[%d][%d] = ", i,j);
              scanf("%d", &a[i][j]);
          }
        }
    for(i=0; i<n; i++)
        {
          for(j=0; j<n; j++)
          {
              if(a[i][j] != a[j][i])
              {
                simetricna = 0;
                break;
              }
          }
        }
    printf("Matricata: \n\n");
    for(i=0; i<n; i++)
        {
          for(j=0; j<n; j++)
          {
              printf("%d ", a[i][j]);
          }
        printf("\n");
        }
    if(simetricna)
      printf("Matricata e simetricna\n");
    else
      printf("Matricata ne e simetricna\n");
    return 0;
}

Добар е условот, ама друг пат од нула почнувај со матриците. :)
 
Имам едно прашање во врска со функцијава, каде што функцијата prost ( n) ми враќа 1 или 0.
Код:
int prv_pogolem_prost (int n) {
do
n ++;
[B]while (!( prost (n)));[/B]
return n;
}

До кога ќе врти? Кога ќе наиде на 1(во prost 0) или на 0(што во prost( n) би добил 1)?
 
До кога ќе врти? Кога ќе наиде на 1(во prost 0) или на 0(што во prost( n) би добил 1)?

Ќе врти се додека prost ( n ) враќа 0, ако прашуваш за болдираниот дел.
 
Ќе врти се додека prost ( n ) враќа 0, ако прашуваш за болдираниот дел.


Значи враќа prost ( n ) 1 и прекинува со вртење? Тогаш го добивам резултатот?

Може малце да појасниш зошто прекинува кога е 1? Не го сфаќам тој дел, од прееска ме извртува у мисли.
 
Значи враќа prost ( n ) 1 и прекинува со вртење? Тогаш го добивам резултатот?

Да.

Може малце да појасниш зошто прекинува кога е 1? Не го сфаќам тој дел, од прееска ме извртува у мисли.

Затоа се' што е различно од 0 (во случајов 1) значи true, а негација од true ти е false. Кога while ќе наиде на false ќе го прекине циклусот.
 
Здраво дечки, имам проблем со една програма, се работи за: претворање матрица симетрична во однос на главната дијагонала. претворањето се постигнува со собиранје на вредностите на елементите од двете позиции кој се симетрични во однос на главната дијагонала и нивиот збир се сместува на двете соодветни позиции. пр:

1 2 3
4 5 6
7 8 9

1 6 10
6 5 6
10 8 9

пробував нешто вака но не е тоа тоа.
PHP:
#include <stdio.h>
#define MAX 100
 
int main()
{
    int a[MAX][MAX], b[MAX][MAX];
    int i, j, n;
    int zbirPole=0;
    printf("Vnesi golemina na matricata\n");
    scanf("%d", &n);
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
        scanf("%d", &a[i][j]);
        }
    }
    for(i=1; i<n; i++)
    {
        for(j=1; j<n; j++)
          {
              zbirPole=a[0][j]+a[i][0];
              a[0][j]=zbirPole;
          }
        a[i][0]=zbirPole;
        zbirPole=0;
    }
    printf("\n\nNovata matrica e:\n");
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
        printf("%d\t", a[i][j]);
        }
        printf("\n");
    }
    return 0;
}
 
Вака, ова би требало да работи мислам, набрзина го искуцав така да може и некоја грешка да има
PHP:
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
 
main()
{
 
 
  int a[100][100], b[100][100];
    int i, j, n;
    int zbirPole=0;
    printf("Vnesi golemina na matricata\n");
    scanf("%d", &n);
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
        scanf("%d", &a[i][j]);
        }
    }
      printf("\n Pocetnata matrica e : \n");
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
        printf("%d\t", a[i][j]);
        }
   
        printf("\n"); }
        printf("\n");
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
          {
              if(i!=j) {
              zbirPole=a[i][j]+a[j][i];
              b[i][j]=zbirPole;
              b[j][i]=zbirPole;
              zbirPole=0;
              }
              else b[i][j]=a[i][j];
          }
     
     
    }
    printf("\n\nNovata matrica e:\n");
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
        printf("%d\t", b[i][j]);
        }
        printf("\n");
    }
  // system("pause");
    return 0;
   
  }
 
Дали може некој да ми помогне....програма за матрица, ако елементот над споредната дијагонала е поголем од симетричниот во однос на споредната дијагонала, да си ги заменат местата.
Пр.
Код:
9 8 3        1 2 3
6 5 4 ---->  4 5 6
7 2 1        7 8 9
 
#include<stdio.h>

int main ()
{
int a[100][100], i, j,n,temp;

scanf("%d",&n);

for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
scanf("%d", &a[j]);

for (i = 0; i < n; i++){
for (j = 0; j < n; j++)
{
if ( i+j >= n-1)
continue;

else if (a[j] > a[n-1-j][n-1-i] )
{
temp=a[j];
a[j]=a[n-1-j][n-1-i];
a[n-1-j][n-1-i]=temp;
}
}

}
for (i = 0; i < n; i++){
for (j = 0; j < n; j++)
printf("%d ", a[j]);
printf("\n");}


return 0;
}

ова од лабораториски ја ископирав што сум ја решила тогаш :)
 
Благодарам, ми помогна многу, имаше некои грешки, ама идејата е таа. Фала уште еднаш :)
#include<stdio.h>

int main ()
{
int a[100][100], i, j,n,temp;

scanf("%d",&n);

for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
scanf("%d", &a[j]);

for (i = 0; i < n; i++){
for (j = 0; j < n; j++)
{
if ( i+j >= n-1)
continue;

else if (a[j] > a[n-1-j][n-1-i] )
{
temp=a[j];
a[j]=a[n-1-j][n-1-i];
a[n-1-j][n-1-i]=temp;
}
}

}
for (i = 0; i < n; i++){
for (j = 0; j < n; j++)
printf("%d ", a[j]);
printf("\n");}


return 0;
}

ова од лабораториски ја ископирав што сум ја решила тогаш :)
 

Kajgana Shop

Back
На врв Bottom