roku121 Temat założony przez niniejszego użytkownika |
Podstawy programowania w C » 2019-11-19 20:23:10 Cześć, mam takie podstawowe zadania do wykonania, pomożecie? Zrobiłem kilka ale nie wiem czy dobrze. #include <stdio.h> #include <stdlib.h> #include "stdint.h" #include "main.h"
int main( int argc, char ** argv ) { int a; int b = 0; wyswietlText( "Hello World\n" ); a = b++; printf( "a=%d, b=%d", a, b ); printf( "\n" ); printf( "(3)\n" ); wyswietlLiczbe1( 2 ); wyswietlLiczbe2( & b ); printf( "(4)\n" ); wyswietlZnak( "Hello World", 5 ); printf( "\n" ); printf( "(5)\n" ); char tab1[] = { "To jest pierwszy text" }; char tab2[] = { "Moja druga linijka" }; char wynik1 = porownajZnaki( tab1, 2, tab2, 2 ); char wynik2 = porownajZnaki( tab1, 6, tab2, 6 ); if( wynik1 == true ) { printf( "Prawda" ); } else { printf( "Fałsz" ); } printf( "\n" ); if( wynik2 == true ) { printf( "Prawda" ); } else { printf( "Falsz" ); } printf( "\n" ); printf( "\n" ); suma( a, b ); system( "pause" ); return 0; }
void wyswietlText( char * text ) { printf( "%s", text ); }
void wyswietlLiczbe1( int32_t liczba ) { printf( "%d\n", liczba ); }
void wyswietlLiczbe2( int32_t * wsk_liczba ) { printf( "%d\n", * wsk_liczba ); }
void wyswietlZnak( char * text, uint8_t index ) { char * c = text +( index - 1 ) * sizeof( char ); printf( "Znak numer %d to : %c\n", index, * c ); }
bool porownajZnaki( char * txt1, uint8_t idx1, char * txt2, uint8_t idx2 ) { bool wynik = false; char * c1 = txt1 +( idx1 - 1 ) * sizeof( char ); char * c2 = txt2 +( idx2 - 1 ) * sizeof( char ); if( * c1 == * c2 ) { wynik = true; } else { wynik = false; } return wynik; }
Funkcje: #ifndef MAIN_H_ #define MAIN_H_ #include "stdbool.h"
void wyswietlLiczbe1( int32_t liczba ); void wyswietlLiczbe2( int32_t * wsk_liczba ); void wyswietlText( char * text ); void wyswietlZnak( char * text, uint8_t index ); bool porownajZnaki( char * txt1, uint8_t idx1, char * txt2, uint8_t idx2 );
int16_t suma( int8_t a, int8_t ); int16_t roznica( int8_t a, int8_t ); int16_t iloczyn( uint8_t a, uint8_t b ); int16_t iloraz( uint8_t a, uint8_t b ); uint32_t poleProstokata( uint8_t a, uint8_t b ); uint32_t moduloAprzezB( uint16_t a, uint8_t b ); float poleTrojkata( uint8_t a, uint8_t h ); uint32_t silniaLiczby( uint8_t a ); uint32_t potegaLiczby( uint8_t a, uint8_t b ); uint8_t liczbaPowtorzenZnaku( char * text, char znak ); uint8_t znajdzZnak( char * text, char znak );
#endif
|
|
darko202 |
» 2019-11-20 14:47:51 jeśli program kompiluje się robi to czego autor oczekiwał (sprawdzaj dla różnych możliwych danych)
to w czym my możemy Ci pomóc ?
doprecyzuj co Cię niepokoi ? |
|
roku121 Temat założony przez niniejszego użytkownika |
» 2019-11-20 19:01:51 Jak mam dodać tą funkcję i napisać tak by ona działała? 6. Dodaj do programu funkcje suma, roznica, iloczyn, iloraz (Pamiętaj dodaj deklaracje w pliku main.h) Napisałem coś takiego: int16_t iloraz( uint8_t a, uint8_t b ) { printf( "%d\n", a / b ); }
int16_t roznica( int8_t a, int8_t b ) { printf( "%d\n", a - b ); }
int16_t suma( int8_t a, int8_t b ) { printf( "%d\n", a + b ); }
int16_t iloczyn( uint8_t a, uint8_t b ) { printf( "%d\n", a * b ); }
Czy to ma sens i ten schemat będzie działał dla kolejnych zadań? (6,7,8,9) |
|
pekfos |
» 2019-11-20 19:19:24 Nie ma. Wyraźnie określasz, że funkcja zwraca wartość typu int16_t, a żadna wartość nie jest zwracana. Taka forma funkcji sugeruje, że wyświetlanie wyniku ma używać funkcji, a nie się w niej zawierać. int16_t wynik = suma( a, b );
i ten schemat będzie działał dla kolejnych zadań? (6,7,8,9) |
10 też. |
|
« 1 » |