Ansi C: Modulo zählen von 1 bis 16

Gast #2601843
Lesenswert?

Hallo,

ich möchte, dass eine char Variable "Seq" vom Wert 1 bis 16 nur den Wert 
1 bis 16 annehmen kann.
Diese Variable ist in einer Funktion enthalten. Über einen Paramter wird 
der Wert der Variable "Seq" zugewiesen.
Das hochzählen geschieht von außen. Wenn zum Beispiel der Paramter 17 
ist, dann soll die Variable "Seq" wieder von von 1 beginnen 
hochzuzählen.
Wie könnte man dies implementieren ?
#2602139
Lesenswert?

Super Uwe,
was denkst du warum die anderen Poster die Lösung nicht gleich 
geschrieben haben?
Nein sie waren nicht zu blöd dazu, sondern sie wollten dem TO die 
Hausaufgaben nicht machen sondern ihm nur Hilfestellung geben daß er 
selbst darauf kommt.
Guttenbergen ist hier nicht erwünscht.
Moderator Persönliche Seite #5343239
Lesenswert?

ARMleuchter schrieb:
> aber die Lösung von Uwe ist aus meiner Sicht falsch

Die ist vollkommen korrekt:
1
#include <stdio.h>
2

3
unsigned int func(unsigned int x)
4
{
5
    return ((x&0x0F)+1);
6
}
7

8
int main ()
9
{
10
    unsigned int i = 0;
11

12
    while (1)
13
    {
14
        i = func (i);
15
        printf ("%u\n", i);
16
    }
17
    return 0;
18
}

Ausgabe:
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
16
16
17
1
18
2
19
3
20
4
21
....

Und damit schließe ich den Thread wegen Leichenfledderei.
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.