program który liczy średnią liczb dodatnich z przekazanej tablicy liczb całkowitych

0

Mam do zrobienia takie zadanie:
Napisz funkcje˛, która dla tablicy liczb całkowitych obliczy średnia˛ liczb
dodatnich umieszczonych w tablicy. Argumentem funkcji jest rozmiar tablicy. Mam już trochę napisane ale coś jest nie tak i nie wiem jak sobie z tym poradzić. To jest to, co do tej pory wymyśliłam:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

bool czyPalindrom(char napis_prim[]){
int dlugosc = strlen(napis_prim);

 int i = 0;
 for(i = 0; i < dlugosc; i++)
   if(napis_prim[i] != napis_prim[dlugosc - 1 - i])
     return false;
     
 return true;     
 }

int main(int argc, char *argv[])
{

char napis[20];
scanf("%s", napis);

if(czyPalindrom(napis) == false)
printf("napis nie jest palindromem");
else
printf("napis jest palindromem");

system("PAUSE");
return 0;
}
Bardzo prosiłabym o pomoc w poprawieniu tego kodu....Z góry dziękuję:)

0

Fakt, przepraszam....chodzi o to zadanie:
Napis nazywa sie˛ palindromem, jes´li czytany od przodu i czytanym od
tyłu jest taki sam, na przykład: „kajak”, „zakaz”, „oko”, „radar”, „potop”, „ara”,
„oko w oko”. Napisz funkcj˛e, który sprawdza, czy dany ła´ncuch jest palidromem.

0

Ekhm, albo pomyliłaś się wklejając kod, albo sobie żartujesz.

double srednia(int tab[], int rozmiar)
{
    int suma=0;
    double wynik=0;
    for(int i=0;i<rozmiar;i++)
    {
        suma=suma+tab[i];
    }
    
    wynik=1.0*suma/rozmiar;
    return wynik;
}

0

http://www.programmingsimplified.com/c-program-find-palindrome - Gotowce, do wzięcia.

U mnie Twój kod wydaje się działać.

0

U mnie niestety nie działa...Dziękuję bardzo za pomoc i jeszcze raz przepraszam za pomyłkę...

0

nie mogę go skompilować

0

Więc podaj błędy...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


bool czyPalindrom(char napis_prim[]){
     int dlugosc = strlen(napis_prim);

     int i = 0;
     for(i = 0; i < dlugosc; i++)
       if(napis_prim[i] != napis_prim[dlugosc - 1 - i])
         return false;

     return true;
}


int main(int argc, char *argv[])
{

  char napis[20];
  scanf("%s", napis);

  if(czyPalindrom(napis) == false)
    printf("napis nie jest palindromem");
  else
    printf("napis jest palindromem");


  system("PAUSE");
  return 0;
}
    • U mnie działa * ** ;-P
0

U mnie działa, jaki błąd pokazuje Ci kompiler?

http://pastebin.com/K7VWaMwF

0

5 syntax error before "czyPalindrom"

0

Ty na pewno masz pierwsze 5 lini napisane tak?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

bool czyPalindrom(char napis_prim[]){
 

???

0

tak, na pewno... Przed chwilą wkleiłam ten kod co Ty wpisałeś i nadal to samo

0

Ale jak nie widać żadnych większych błędów to nie ma się co nad tym głowić bo szkoda czasu:) a mogłabym jescze poprosić o rozwinięcie tego wcześniejszego kodu do tego poprzedniego zadania??

0

Z jakiego korzystasz compilera?

Tworząc nowy projekt jako typ wybierz C++, bo w przypadku C kompilacja się nie powodzi

Edit: A pomyślę, robiłem to nie dawno ale bez użycia funkcji :)

Edit 2: To upewnij się, że zaznaczyłaś "C++ Project" przy jego tworzeniu

0

Korzystam z devC++

0

Byłabym bardzo wdzięczna bo ja siedzę przy tych zadanich tyle czasu i ciągle bez efektu....

0

Tylko że ja muszę to pisać w języku c

0

zaznaczone mam c++ i nadal nic...no ale trudno...musi tak zostać:)

0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define false 0
#define true 1
#define bool int

bool czyPalindrom(char napis_prim[]){
     int dlugosc = strlen(napis_prim);

     int i = 0;
     for(i = 0; i < dlugosc; i++)
       if(napis_prim[i] != napis_prim[dlugosc - 1 - i])
         return false;

     return true;
}


int main(int argc, char *argv[])
{

  char napis[20];
  scanf("%s", napis);

  if(czyPalindrom(napis) == false)
    printf("napis nie jest palindromem\n");
  else
    printf("napis jest palindromem\n");


  system("PAUSE");
  return 0;
}
 

Zrób w ten sposób, w C nie ma typu bool.
Jeśli nadal nie zadziała, to podaj wszystkie błędy jakie wyskoczą.

0

Kod C

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
/*
Napisz funkcje, która dla tablicy liczb całkowitych obliczy średnia˛ liczb
dodatnich umieszczonych w tablicy. Argumentem funkcji jest rozmiar tablicy.
*/

int tab_srednia(const int N, int tablica[])
{
    int srednia=0, suma=0;

    int i;

    for (i=0; i<N; i++)
        if (tablica[i] > 0)
            suma += tablica[i];

    srednia = suma / N;
    return srednia;
}

int main(int argc, char *argv[])
{
    int tab[5] = {2,2,2,2,2};
    int srednia = tab_srednia(5, tab);

    printf("%d", srednia);
    printf("\n");

  system("PAUSE");
  return 0;
}

 

Przerobiony kod

Edit: @up W C nie ma true/false tylko 1/0? Tak samo z boolean? Lekki offtop

0

teraz się skompilowało:) dziękuję:)

0
 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define false 0
#define true 1
#define bool int

bool czyPalindrom(char napis_prim[]){
     int dlugosc = strlen(napis_prim);

     int i = 0;
     for(i = 0; i < dlugosc; i++)
       if(napis_prim[i] != napis_prim[dlugosc - 1 - i])
         return false;

     return true;
}

double srednia(int tab[], int rozmiar)
{
    int suma=0;
    double wynik=0;
    int i;
    for( i=0;i<rozmiar;i++)
    {
        suma=suma+tab[i];
    }

    wynik=1.0*suma/rozmiar;
    return wynik;
}


int main(int argc, char *argv[])
{

int tab[] = {2,1,1,1,1};
int  rozmiar=5;

printf("srednia: %f", srednia(tab,rozmiar));


  system("PAUSE");
  return 0;
}

Powinno działać.

0

No to masz 2 kody swojego programu na średnią :]

Moją zrobiłem pod najprostsze wyniki, kolega wyżej użył double'a by mieć równierz zmiennoprzecinkowe wyniki

0

Kurcze...nie wiem jak Wam dziękować....sama na pewno bym sobie nie poradziła...:) szkoda że nie mogę Was zabrać na kolokwium:)

0
#include <stdio.h>
#include <cstring>
 
int Palindrom(const char* haslo)
{
        int dlugosc = strlen(haslo);
        for(int i = 0, j = dlugosc - 1; i < j; i++, j--)
                if(haslo[i] != haslo[j])
                        return 0;
        return 1;
}
 
int main()
{
		printf("Podaj slowo: ");
		char slowo[20];
		scanf("%s", slowo);
        printf("Czy %s to palindrom? ", slowo);
        printf(Palindrom(slowo) ? "tak" : "nie");
		getchar();
        getchar();
        return 0;
}
0

hehe....A skąd koledzy/koleżanki są??

Pytam bo szukam osoby która się na tym zna i udziela korepetycji

0

Pewnie dlatego że w ogóle nie jestem zalogowana:) ale to niestety nie mój rejon...

0

Na pewno wkrótce założę:) jeszcze raz dziękuję za pomoc:)

0

Na przyszłość - nie używaj DevC++, chyba, że chcesz mieć do czynienia z zabugowanym programem, który jest od dawna nierozwijany...

1
[losowa nazwa] napisał(a)

Na przyszłość - nie używaj DevC++, chyba, że chcesz mieć do czynienia z zabugowanym programem, który jest od dawna nierozwijany...

Dev jest zabugowanym IDE, natomiast korzysta z compilera minGW

Do prostych aplikacji Dev się nadaje, do bardziej zaawansowanych już nie

Polecam Code::Blocks, jest pod kazdym względem lepszy niż Dev, a interfejs niemal identyczny (90% wygląda podobnie)

0

Od deva jest nawet lepsza strona internetowa www.ideone.com

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