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

Член од
14 септември 2013
Мислења
86
Поени од реакции
19
Здраво дечки, ми треба помош....задачата е од дадена низа, да се најде најголемата растечка. Кодот стигнав тука до негде...п.с. ги зедов вашите претходни критики во предвид. Фала однапред :)
Код:
#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;
}
 

Емкаа

the worst thing about prison was the dementors.
Член од
14 мај 2008
Мислења
5.005
Поени од реакции
12.630
Здраво дечки, ми треба помош....задачата е од дадена низа, да се најде најголемата растечка. Кодот стигнав тука до негде...п.с. ги зедов вашите претходни критики во предвид. Фала однапред :)
Код:
#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;
}
 
M

Mr.InF3ction

Гостин



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

DarkoG

Better then ever before.
Член од
19 август 2008
Мислења
701
Поени од реакции
81
дали со оваа програма би се одредило дали внесената матрица е симетрична во однос на главната дијагонала?

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;
}
 
Член од
23 октомври 2010
Мислења
243
Поени од реакции
86
дали со оваа програма би се одредило дали внесената матрица е симетрична во однос на главната дијагонала?

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)?
 
П

Паган-др

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

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

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

Xibalba

Corona Australis
Член од
24 јануари 2012
Мислења
6.092
Поени од реакции
11.497
Значи враќа prost ( n ) 1 и прекинува со вртење? Тогаш го добивам резултатот?
Да.

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

DarkoG

Better then ever before.
Член од
19 август 2008
Мислења
701
Поени од реакции
81
Здраво дечки, имам проблем со една програма, се работи за: претворање матрица симетрична во однос на главната дијагонала. претворањето се постигнува со собиранје на вредностите на елементите од двете позиции кој се симетрични во однос на главната дијагонала и нивиот збир се сместува на двете соодветни позиции. пр:

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;
}
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.238
Поени од реакции
1.296
Вака, ова би требало да работи мислам, набрзина го искуцав така да може и некоја грешка да има
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;
   
  }
 
Член од
14 септември 2013
Мислења
86
Поени од реакции
19
Дали може некој да ми помогне....програма за матрица, ако елементот над споредната дијагонала е поголем од симетричниот во однос на споредната дијагонала, да си ги заменат местата.
Пр.
Код:
9 8 3        1 2 3
6 5 4 ---->  4 5 6
7 2 1        7 8 9
 
Член од
23 октомври 2010
Мислења
243
Поени од реакции
86
#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;
}

ова од лабораториски ја ископирав што сум ја решила тогаш :)
 
Член од
14 септември 2013
Мислења
86
Поени од реакции
19
Благодарам, ми помогна многу, имаше некои грешки, ама идејата е таа. Фала уште еднаш :)
#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

На врв Bottom