Tri zadatka sa pokazivačima u C-u (rešeno)

1

Tri zadatka sa pokazivačima u C-u (rešeno)

offline
  • Pridružio: 03 Dec 2012
  • Poruke: 36

Da li neko moze da mi ispise program u C ?

A evo kako glase tekstovi zadataka:

1. Zadatak
1) Unesi niz od 10 celih brojeva tako sto koristis pokazivac "pa".
2) Nadji sumu S elemenata niza i broj parnih elemenata "j" a da ne koristis indeks.
3) Ispisi adrese na kojima se nalaze negativne adrese niza a da prilikom pretrazivanja koristis pokazivac.

2. Zadatak
1) Definisi dva pokazivaca "pa" i "pb" na realni tip i tri promenljive a,b,c. Izvrsi inicijalizaciju na a i b. Koristeci pokazivace:
- Unesi vrednosti za "a" i "b"
- Saberi vrednosti za "a" i "b" i dodeli je "c"
- Ispisi vrednosti a, b, c kao i adrese na kojima se nalaze.

3. Zadatak
Unesi niz a maksimalno 10 (realni tip), i pokazivace "pa" i "pb" na realni tip.
1) Pomocu pokazivaca "pa" unesi niz
2) Postavi "pa" na prvi a "pb" na poslednju vrednost
3) Pomocu operatora " ? " uporedi sadrzaje
4) Uvecaj prvi elemenat za vrednost poslednjeg pomocu pokazivaca
5) Saberi drugi i peti element koristeci trenutne vrednosti pokazivaca "pa" i "pb"
6) To dodeli kao novu vrednost poslednjoj komponenti
7) Ispisi elementre niza kao i adrese na kojima se nalaze

Ovo su ta tri zadatka, ako neko ima volje i vremena da mi posalje strukturu programa (tj. ispisan program u c programu)

-Koristi se biblioteka <stdio.h>
-Ciklus za koriscenje je "for"
-Unosenje preko "scanf"
-Ispisivanje pomocu "printf"

Ja nemam vremena da radim ovo, jer cu izgubiti dosta, zauzet sam ovih dana puno, imam nekim problema, a ovo mi je potrebno do srede.
Hvala unapred svima Smile
Pozdrav



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Més que un club
  • Glavni vokal @ Harpun
  • Pridružio: 27 Feb 2009
  • Poruke: 3895
  • Gde živiš: Novi Sad,Klisa

Probaj makar malo pa javi gde je zapelo...



offline
  • Pridružio: 03 Dec 2012
  • Poruke: 36

#include<stdio.h>
main () {
int a[10], pa, S, j;
printf ("\nUnesi niz");
for (pa=a; pa<a; pa++)
scanf ("%d", pa);
S+=a[pa];
for (pa=a; pa<a; pa++)
if (a[pa]>0)
j++;

Ispisivanje ne znam kako bih napisao, ne razumem ovo "ispisi adrese na kojima se nalaze negativne adrese niza" ?

Cak i ovo gore ne znam da li je tacno ovaj ciklus da li sam dobro napisao ovo a[pa] ?

Edit:
Ova ostala dva ne znam, nisam siguran, danas smo ovo radili, novo je sve, tako da ne razumem bas kako sve funkcionise.

offline
  • Na odmoru xD
  • Na odmoru xD
  • Pridružio: 15 Feb 2012
  • Poruke: 430

#include <stdio.h> int main(void) {     int *pa = NULL, *pb = NULL;     int a = 0, b = 0, c = 0;         pa = &a;     pb = &b;         printf("Unesite prvi broj: ");     scanf("%d", pa);     printf("Unesite drugi broj: ");     scanf("%d", pb);         c = *pa + *pb;         printf("Adresa prome. a %X i njena vrednost je %d\n", pa, *pa);     printf("Adresa prome. b %X i njena vrednost je %d\n", pb, *pb);     printf("Adresa prome. c %X i njena vrednost je %d\n", &c, c);  /* Prikazujem vrednost adrese u heksadecimalnom sistemu zbog citljivosti */         system("PAUSE");     return 0; }
Drugi zadatak Wink

offline
  • Pridružio: 03 Dec 2012
  • Poruke: 36

Aleksandr1996 :: #include <stdio.h> int main(void) {     int *pa = NULL, *pb = NULL;     int a = 0, b = 0, c = 0;         pa = &a;     pb = &b;         printf("Unesite prvi broj: ");     scanf("%d", pa);     printf("Unesite drugi broj: ");     scanf("%d", pb);         c = *pa + *pb;         printf("Adresa prome. a %X i njena vrednost je %d\n", &pa, *pa);     printf("Adresa prome. b %X i njena vrednost je %d\n", &pb, *pb);     printf("Adresa prome. c %X i njena vrednost je %d\n", &c, c);  /* Prikazujem vrednost adrese u heksadecimalnom sistemu zbog citljivosti */         system("PAUSE");     return 0; }
Drugi zadatak Wink


Hvala PUNO.
Razumem zadatak, samo bih jos da te pitam da li pocetak moze da izgleda ovako a da pri tom ne menja rad programa:

#include <stdio.h> main () {     int *pa, *pb, a, b, c;

I da zavrsim program samo sa } ?
Bez
    system("PAUSE");     return 0;
Zato sto ovo jos uvek nismo pominjali pa da ne posumnja Smile

offline
  • Na odmoru xD
  • Na odmoru xD
  • Pridružio: 15 Feb 2012
  • Poruke: 430

Napisano: 03 Dec 2012 21:51

Ideja za nizove ti je losa (mzoda i mzoe da prodje ali nerazumem tvoj kod xD)
ideja:
#include <stdio.h> int main(void) {     int *p = NULL;     int niz[10];         p = &niz[0];         for(; p <= &niz[9]; p++)     {         scanf("%d", p);     }             p = &niz[0];         for(; p <= &niz[9]; p++)     {         printf("%d\n",*p);     }     system("PAUSE");     return 0; }
Mislim da je ovo pravilno. To sto si napisao mislim da nece raditi ali evo ti primer kako bi mozda bolje moglo da se uradi:P Zadacima se nisam bavio jer nemam vremena ali ovo gore ce ti pomoci na relaciji pointer -> Niz

Dopuna: 03 Dec 2012 21:53

Moze da se izostavi to samo izbaci
int main(void) int i void iz main.

offline
  • Pridružio: 03 Dec 2012
  • Poruke: 36

Pa znam da je malo 'vrljav' nacin pisanja programa na ovaj nacin. Ali tako smo ucli u skoli, znam da nije ovo tacno sto sam napisao to je nesto grubo i na brzaka napisano.

Cek', ovde kod tebe u primeru za prvi zadatak:
- unosi se niz
- p

Pored toga treba mi i "S" - Suma svih elemenata niza i "j" brojac za parnih elemenata niza i da se ispise S i j

offline
  • Na odmoru xD
  • Na odmoru xD
  • Pridružio: 15 Feb 2012
  • Poruke: 430

E da izvini u gore u drugom zadatku sam pogresio vezano za adrese prommenljivih treba da izbrises & ispred pa i pb gde treba da ispise njihovu vrednost jer tako ustvari ispisuje memorijsku lokaciju pintera gde je smestena memorijska lokacija promenljive xD

To gore nije ni trebalo da ti uradi zadatak treba samo da ti da ideju kako se koriste pokazivaci sa nizom.
A da bi sabro ceo niz samo stavi ovo i pre toga deklarisi promenljivu sum tipa int.
sum = sum + *p;

offline
  • Pridružio: 03 Dec 2012
  • Poruke: 36

Ok, napisao sam i njega Smile
Hvala jos jednom.

Ostaje jos treci zadatak.

offline
  • Na odmoru xD
  • Na odmoru xD
  • Pridružio: 15 Feb 2012
  • Poruke: 430

#include <stdio.h> int main(void) {     int *p = NULL;     int niz[10], sum = 0, j = 0 , brojac = 0;               p = &niz[0];         for(; p <= &niz[9]; p++)     {         brojac = brojac + 1;         if(brojac % 2 == 0)         {             j = j + 1;         }         scanf("%d", p);     }               p = &niz[0];         for(; p <= &niz[9]; p++)     {         sum = sum + *p;     }             printf("%d\n",sum);     printf("%d\n",j);           system("PAUSE");     return 0; }
Mislim da je ovo to sto tebi treba.
Edit Pisali smo u isto vreme ali ce mozda nekom zatrebati.

Ko je trenutno na forumu
 

Ukupno su 461 korisnika na forumu :: 20 registrovanih, 2 sakrivenih i 439 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., aljosa7, Areal84, Bane san, Bloody, Boris90, djboj, Dorcolac, dragon986, Jethro, Kaplar2, KUZMAR, lekso, Marko Marković, mikrimaus, Mirage 2000N, ostoja, ss10, vasa.93, vukm