definiowanie funkcji w printf

0

Witam. Czy można używać fucji w printf. Chcę zeby program drukował podane wartości z tablicy ale coś nie działa ?

 int dosk(int tab[])
{for(inti=0;i<1000;i++)
if(i+1==tab[i])return i+1;}

printf("liczby doskonale to %d,dosk(tab[1000]));

tablice z elementami mam wprowadzoną. Ma ktoś jakiś pomysł co jest źle ?

1

tak, to co masz zle to

  • formatowanie. Tragiczne. Dlatego nie widzisz bledu
  • do printfa przekazujesz wartosc zamiast adres zmiennej ktorej chcesz wyswietlic
  • duzo lepiej wykonac funkcje i zapisac ja do zmiennej i pozniej ta zmienna wyswietlic. Duzo bardziej czytelne + kompilator sobie to sam zoptymalizuje. No i lepsze do debuggowania
1

Przecież to się nie kompiluje nawet. http://www.format.krzaq.cc użyj do sformatowania kodu przed wrzuceniem na forum, bo nie da się czytać.

Daj cały kod, a nie wycinek, który się nie kompiluje.

0

cały kod wygląda tak, to są moje pierwsze programy w C wiec sorry za tak proste pytania

#include<stdio.h>
int main()
{
 int tab[1000]
 for(int i=0;i<1000;i++)
 {
  tab[i]=0;
  for(int k=1;k<i+1;k++)
  if((i+1)%k==0)tab[i]+=k;
 }
printf("Liczby doskonale to %d ",dosk(tab[1000]));
}

int dosk(int tab[])
{
 for(inti=0;i<1000;i++)
 if(i+1==tab[i])return i+1;
}
1

http://ideone.com/PPgQwA

to sie nie kompiluje + nie zastosowales sie do moich uwag

0

ten adres zmiennej do printf mam wskaźnikiem jakoś przekazać ? :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1