Navigationskarta Insitutitionen för Datavetenskap Umeå Universitet

Uppgifter från gruppövning 1 (99-09-07)


Uppgift 1:

Skriv två funktioner som returnerar fakulteten av det tal de får som argument. En rekursiv och en iterativ funktion. Funktionshuvud:
unsigned int fak(unsigned int tal)

Uppgift 2:

Skriv en swap-funktion som byter plats på sina två argument. Valfri typ på argumenten, men de måste vara lika!

Uppgift 3:

Omvandla följande till en for-loop:

	* Från början är i=1, j=3 och k=max(i,j).
	* Loopen ska snurra tills det att summan av de tre talen är större än
	  100, eller i är större än 20.
	* För varje varv i loopen ska i ökas med 2 och k minskas med 1.
Allt detta ska stå i en for-sats, alltså ska inget initieras innan eller liknande. Själva kroppen på for-loopen är ointressant.
Skriv även en ekvivalent while-loop.

Uppgift 4:

Skriv de två funktionerna strcpy() och strcmp(). Funktionshuvuden:
char *strcpy(char *dst, const char *src)
int strcmp(const char *s1, const char *s2)

Uppgift 5:

Skriv en funktion som läser in heltal från stdin och för varje inläst heltal skriver ut fakulteten (m.h.a. fak()). Fakulteterna ska även läggas i en 2-dimensionell array tillsammans det inlästa talet. Arrayen ska ha plats för 10 talpar. Funktionen avslutar inläsningen och skriver ut hela tabellen då användaren matar in talet 0 eller då arrayen är fylld.


Pekarträsket:


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

int main(void)
{
	char *a[] = {"Petter", "kojar", "när Sune", "går på skare "},
	b[128], **c, *d;

	c = a;
	strcpy(b, *c);
	d = *(c + 3);
	a[0] = d;
	d = strchr(*a, a[1][0]);
	strcpy(b + 2, d);
	*a = ++c[2];
	strcat(b, a[0]);
	d = &a[1][0];
	strcpy(&b[11], d);
	a[3] = b + 14;
	*c[3] = '\0';
	puts(b);
}

[an error occurred while processing this directive]