[ ilija simic @ 17.03.2010. 22:19 ] @
Zadatak glasi da za broj n imam toliko clanova niza a i da ako je clan niza a negativan da ga kvadrira,a ako je pozitivan da se prepise.
Ja sam ovo napisao medjutim izbacuje mi brojeve koji uopste nemaju vezu sa unesenim.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int main()
{
  int a[100],b[100],k,n,i,j;
  printf("n:");
  scanf("%i",&n);
  for(i=0;i<n;i++)
  {
  printf("a[i]:");
  scanf("%i",&a[i]);
  }
  if(a[i]<0)
  b[j]=a[i]*a[i];
  else
  b[j]=a[i];
  for(j=0;j<n;j++)
  {
  printf("%i \n" , b[j]);
  }
  getch();
  return 0;
}

edit: nisam napisao da radim u c

[Ovu poruku je menjao Mihajlo Cvetanović dana 17.03.2010. u 23:38 GMT+1]
[ Mihajlo Cvetanović @ 17.03.2010. 22:48 ] @
Dodao sam [code ] tagove da listing bude čitljiviji.

Ovaj program prvo u petlji čita niz a. Zatim van petlje proverava vrednost a[i ] i rezultat smešta u b[j ]. U tom trenutku i==n, jer se upravo izašlo iz petlje u kojoj je i raslo do n, a promenljiva j nije uopšte ni inicijalizovana, i ko zna koja joj je vrednost. Zatim se u drugoj petlji ispisuje niz b. Ono što ti fali je petlja kad obrađuješ podatke. Moraš čitav niz da "pretabanaš", a ne samo jedan član. A u toj petlji koju budeš ubacio treba ti samo jedno od promenljiva i i j, jer se isti indeks niza koristi i za niz a i za niz b. Znači, ovaj if blok teba da bude u petlji koja vrti po brojaču i (recimo), a unutar if-a umesto b[j] treba ti b[i ].