Program som ej skall acceptera decimaltal ( C )

Trädvy Permalänk
Medlem
Registrerad
Sep 2014

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

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011

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"); } }

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

Trädvy Permalänk
Medlem
Registrerad
Sep 2014

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.
Trädvy Permalänk
Medlem
Registrerad
Sep 2014

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