Permalänk
Medlem

[C++] Euklides algoritm

#include <iostream> using namespace std; void main() { int m; int n; cin >> m; cin >> n; while((m%n) != 0) { int r=m%n; m=n; n=r; } cout << "Svaret ar " << n << endl; }

Edit: Löste det med ovanstående kod

Visa signatur

rm -rf *.blog

Permalänk
Medlem

Jag har ingen aning om vad det är för algoritm du pratar om, men jag gör ett försök.

#include <iostream> using namespace std; void main() { int m; int n; cin >> m; cin >> n; int r=m%n; while (true) { r = m % n; if (r != 0) { m = n; n = r; cout << n; } else { cout << "Svaret är " << n << endl; break; } } }

edit: Jahapp, så bra då. Vad är det för algoritm föresten?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Don_Tomaso
Jag har ingen aning om vad det är för algoritm du pratar om, men jag gör ett försök.

#include <iostream> using namespace std; void main() { int m; int n; cin >> m; cin >> n; int r=m%n; while (true) { r = m % n; if (r != 0) { m = n; n = r; cout << n; } else { cout << "Svaret är " << n << endl; break; } } }

edit: Jahapp, så bra då. Vad är det för algoritm föresten?

http://susning.nu/Euklides_algoritm

Visa signatur

rm -rf *.blog

Permalänk
Medlem

jag tänkte samma sak, jag hade ingen aning heller, men vågade inte göra ett försök just därför

Permalänk
Medlem

Jag får användning för denna länken ganska ofta

Permalänk

Det står fel i den länken, void main() är visst accepterat i C standarden, dock ej i c++.

Extra Note: Ereinion: Du kan ju tex läsa igenom detta: http://homepages.tesco.net/~J.deBoynePollard/FGA/legality-of-...

Permalänk
Medlem

Du får gärna fixa fram ett citat ur C-standarden som visar det, för jag tror inte han har hittat på vilken pragraf det kommer från. http://www.eskimo.com/~scs/C-faq/q11.12.html

Citat:

3.6.1:
"An implementation shall not predefine the main function. This
function shall not be overloaded. It shall have a return type of type
int, but otherwise its type is implementation-defined."

Permalänk
Medlem

äh, onödigt att gnälla på void main.
1: man kompilatorn tillåter det
2: många är vana med det
3: man vill ändå inte använda det returnerade värdet.

Man kan ju rekomendera att man inte använder void main, men inget att bråka om

men fixa så att msvc inte godtar det då...

Permalänk
Medlem

GCC komilerar iaf inte med void main Det löjligaste är att alla skyller det blir kortare kod med void main, när det egentligen blir kortare med int main

Permalänk
Hedersmedlem

Vad jag har för mig är det standard i C att använda
int main(void)

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av m0REc
int main(void)

Det är väl samma som att inte skriva ut void alls?

Visa signatur

Archlinux, Sway och Rust, vad mer behövs?

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av totoo

3: man vill ändå inte använda det returnerade värdet.

Beror på vad och för vilket OS man programmerar.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
NAS: 6700K/16GB/Debian+ZFS | Backup (offsite): 9600K/16GB/Debian+ZFS

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Gräs-Mannen
Det är väl samma som att inte skriva ut void alls?

Tror inte det är det i C det blir typ odefinierat antal argument. i c++ blir det samma dock och därför skriver man int main() i c++

Visa signatur