Differences
This shows you the differences between two versions of the page.
mina_loesningar_till_uppgift_3_7_8_och_15 [2017-09-01 14:54] |
mina_loesningar_till_uppgift_3_7_8_och_15 [2022-07-18 13:20] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== Ex på lösningar för uppgifterna 3, 7, 8 och 15 ===== | ||
+ | |||
+ | 5.3 | ||
+ | <code cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | void vand(char *s); | ||
+ | |||
+ | int main() { | ||
+ | char temp[100]; | ||
+ | cout << "Skriv in en sträng: "; | ||
+ | cin.getline(temp, | ||
+ | vand(temp); | ||
+ | cout << " | ||
+ | system(" | ||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | |||
+ | void vand(char *s) { | ||
+ | char c, *p1, *p2; | ||
+ | p1 = p2 = s; // Båda pekar på starten | ||
+ | while (*p1) { // p1 pekar på \0 | ||
+ | *p1++; | ||
+ | } | ||
+ | p1--; // pekar på slutet | ||
+ | while (p1>p2) { | ||
+ | c = *p1; *p1 = *p2; *p2 = c; // byt plats | ||
+ | p1--; | ||
+ | p2++; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | 5.7 | ||
+ | <code cpp> | ||
+ | // returnerar true om kopieringen gick bra | ||
+ | |||
+ | bool kopiera(char *till, char *fran, int n) { | ||
+ | for (int i=0; i<n; i++) { | ||
+ | if (! (*till++ = *fran++)) { | ||
+ | return true; // nolltecken kopierades | ||
+ | } | ||
+ | } | ||
+ | |||
+ | * --till = ' | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | 5.8 | ||
+ | <code cpp> | ||
+ | void strcat(char *till, char *fran) { | ||
+ | while (*till) { // sök nolltecknet | ||
+ | till++; | ||
+ | } | ||
+ | while (*till++ = *fran++) { // kopiera | ||
+ | ; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | 5.15 | ||
+ | <code cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | |||
+ | // Funktionen returnerar ett kryss respektive en ring om någon | ||
+ | // av spelarna har vunnit. Har ingen vunnit returneras värdet '#' | ||
+ | // Har båda vunnit retuneras det som först påträffas, | ||
+ | char vinnare(char a[3][3]); | ||
+ | |||
+ | int main() { | ||
+ | char a[3][3] = {{' ',' | ||
+ | // Skriver ut spelplan | ||
+ | for (int i = 0 ; i < 3 ; i++) { | ||
+ | for (int j = 0 ; j < 3 ; j++) { | ||
+ | cout << a[i][j]; | ||
+ | } | ||
+ | cout << endl; | ||
+ | } | ||
+ | temp = vinnare(a); | ||
+ | cout << endl; | ||
+ | if (temp != '#' | ||
+ | cout << temp << " vann" << endl; | ||
+ | } else { | ||
+ | cout << "ingen vann!" << endl; | ||
+ | } | ||
+ | system(" | ||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | char vinnare(char a[3][3]) { | ||
+ | int i; | ||
+ | // kontrollera diagonaler | ||
+ | if (a[0][0]==a[1][1] && a[0][0]==a[2][2] && a[0][0]!=' | ||
+ | | ||
+ | } | ||
+ | if (a[0][2]==a[1][1] && a[0][2]==a[2][0] && a[0][2]!=' | ||
+ | | ||
+ | } | ||
+ | |||
+ | // kontrollera rader | ||
+ | for (i=0; i<3; i++) { | ||
+ | if (a[i][0]==a[i][1] && a[i][0]==a[i][2] && a[i][0]!=' | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // kontrollera kolumner | ||
+ | for (i=0; i<3; i++) { | ||
+ | if (a[0][i]==a[1][i] && a[0][i]==a[2][i] && a[0][i]!=' | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | </ | ||