Program som ej skall acceptera decimaltal ( C )

Permalänk
Medlem

Program som ej skall acceptera decimaltal ( C )

Hej!

Jag är ny på programering och försöker lösa ett problem. Jag skall skriva ett program som blanannat ej skall acceptera decimaltal.
Så skriver jag t.ex. 4.5 skall programmet säga att detta ej kommer att funka.
här är mitt program som det ser ut idag.
Jag har försökt med massvis med olika kombinationer utan framgång.

#include <stdio.h> #include <stdlib.h> int main (void) { int storlek; double a, b, x; double hojd = 210; double bredd = 297; printf ("skriv ett tal att testa"); scanf("%i", &storlek); if ( storlek > 1000 ) { printf ("talet är för stort"); return 0; } if (storlek < 0) { printf("skriv ett possitiv tal"); return 0; } printf ("höjd:%e mm bredd:%e mm.\n", storlek, a, b); return 0; }

Mvh

Permalänk
Datavetare

Skulle nog själv läsa in varje rad i en buffert och köra strtol() på strängen, men du kan komma rätt långt med scanf() på detta sätt

#include <stdio.h> int main() { int n; char c; if (scanf ("%i%c", &n, &c) == 2 && c == '\n') { printf ("OK, heltalet är %i\n", n); } else { printf ("inte (enbart) ett heltal\n"); } }

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Har försökt att ta hjälp av din funktion men det funkar inte som den ska iaf! :/ Är det ett heltal skall den fortsätta. men är det ett decimaltal skall den protestera

Såhär skrev jag om koden.

#include <stdio.h> int main (void) { int storlek; double a, b, x; char c; double hojd = 210; double bredd = 297; printf ("Enter the size to be tested: A"); scanf ("%i",&storlek); scanf ("%c", c); if (( storlek >= 0 && storlek <= 9 ) && (c != '\n')) { printf ("skriv ett heltal\n"); return 1; } if ( storlek > 1000 ) { printf ("number is to big"); return 0; } if (storlek < 0) { printf("write .... .... .... .... ....

Inkluderade [code]-taggar. Bjuder på syntaxuppmärkning.
Permalänk
Medlem

OJ, Missade ett & i en scanf funktion. Tack för all hjälp nu funkar iaf programmet!