- 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 Speicheradressen
char* 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>