- Plagiatscheck!
- Besprechung Assignments 1 & 2
- Funktionen
- Call-by-Reference
- Arrays
- Pointer
- Strings
git remote add upstream git@gitlab.tugraz.at:ep-2019/assignment_1_a.git
git pull upstream master
git remote add upstream git@gitlab.tugraz.at:esp-2019/assignment_a2.git
git pull upstream master
Aktualisieren mit (nur lokal!):
git pull upstream master
Coding Standard!
<Rueckgabewert-Typ> Funktion-Name (<Parameter1>, <Parameter2>...) { // Code return <Rueckgabewert> } int main() { // Aufruf: <Rueckgabewert-Typ> Ergebnis; Ergebnis = Funktion-Name(<Parameter1>, <Parameter2>...); }
main
-Funktion anzeigen> echo $? 0
int correctCode(int studentID) { ... code ... return points; } int main() { int num_studis = 85; int i = 0; for(i = 0; i < num_studis; i++) { printf("Student #%d received %d points!", i, correctCode(i)); } }
void printHello() { while(1) { int studentID = 0; printf("Please enter your studentID: "); scanf("%d", &studentID); if(studentID == 0) { return; } printf("Hello %d!\n", studentID); } } int main() { printHello(); }
int fibonacci(int num, int a, int b) { if(num == 0) { return a; } else { return fibonacci(num - 1; b, a + b); } } int main() { int num = 15; int fib = fibonacci(num, 0, 1); printf("%dth fibonacci number = %d", num, fib); }
<typ> name[<size>];
<typ> name[] = {<value1>, <value2>, ...};
name[<index>] = <value>;
1int main()
{
2 int fibo[5];
3 fibo[0] = 1;
4 fibo[1] = 1;
5 fibo[2] = fibo[1] + fibo[0];
6 fibo[3] = fibo[2] + fibo[1];
7 fibo[4] = fibo[3] + fibo[2];
return 0;
}
|
|
int size = numberOfHornsOnAUnicorn(); int array[size];
void foo(int bar[]) { [..] }
void foo(int bar[8]) { [..] }
void foo(int* bar) { [..] }
<typ> name[<rows>][<columns>];
name[<row>][<column>] = <value>;
char matrix[3][3] = { {'A', 'B', 'C'}, {'D', 'E', 'F'}, {'G', 'H', 'I'} };
int cube[3][3][3]; int hypercube[3][3][3][3];
int hypercube[3][3][3][3];
![]() |
![]() |
![]() |
#include <stdio.h> void printMatrix3(char matrix[][3]) { int y; for(y = 0; y < 3; y++) { printf("%c %c %c\n", matrix[y][0], matrix[y][1], matrix[y][2]); } } int main() { char matrix[3][3] = { {'A', 'B', 'C'}, {'D', 'E', 'F'}, {'G', 'H', 'I'} }; printMatrix3(matrix); }Achtung: Nicht mehr möglich als Pointer zu übergeben!
<datentyp>* name;
*name = <value>;
name = &<variable>;
1int main()
{
2 int a = 3;
3 int x = 2;
4 int* ptr = &a;
5 *ptr = 4;
6 ptr = &x;
7 *ptr = 8;
return 0;
}
|
|
void getHourMinutes(int minutes, int* h, int* m) { *h = minutes / 60; *m = minutes % 60; } int main() { int hour = 0, minutes = 0; getHourMinutes(320, &hour, &minutes); printf("%d:%d\n", hour, minutes); return 0; }
char
(Zeichen)char* text = "Hallo!";
char text[] = "Hallo!";
char text[] = {'H', 'a', 'l', 'l', 'o', '!', '\0'};
strcmp
aus string.h
verwenden==
funktioniert nicht, vergleicht nur die Speicheradressenchar* str1 = "Hello"; char* str2 = "World"; if(strcmp(str1, str2) == 0) { // strings sind gleich } else { // strings sind ungleich }
[]
)'\0'
)char* str1 = "Hello"; char c1 = str1[0]; // c1 = 'H' char c2 = str1[4]; // c2 = 'o' char c3 = str1[5]; // c3 = '\0'
#include <string.h>