как да проверите дали нещо е цяло число в c


Отговор 1:

#include "iostream" #include "stdio.h"

използване на пространство от имена std;

int main () {int a; плувка b; scanf ("% f", & b); a = b; if (a == b) cout << "Hello World, това е цяло число"; else cout << "Hello World, не е цяло число"; връщане 1; }

//////////////////// Аз също имам удобен и дълъг отговор

#include "iostream" #include "stdio.h" #include "string.h"

#define true 1 #define false 0

използване на пространство от имена std;

int checkInteger (char * число) {int валидно = вярно; int дължина = strlen (число) - 1; while (дължина> -1) {if (дължина == 0 && (число [дължина] == '+' || номер [дължина] == '-') || (число [дължина] == '1' | | номер [дължина] == '2' || номер [дължина] == '3' || номер [дължина] == '4' || номер [дължина] == '5' || номер [дължина] = = '6' || номер [дължина] == '7' || номер [дължина] == '8' || номер [дължина] == '9' || номер [дължина] == '0')) ; // за да проверим дали първата цифра е знаков бит или иначе число else valid = false; if (дължина! = 0) if (число [дължина] == '1' || номер [дължина] == '2' || номер [дължина] == '3' || номер [дължина] == '4 '|| номер [дължина] ==' 5 '|| номер [дължина] ==' 6 '|| номер [дължина] ==' 7 '|| номер [дължина] ==' 8 '|| номер [дължина ] == '9' || номер [дължина] == '0'); // всички входни данни са цели числа или не са валидни иначе = false; дължина--; } ако (валидно) върнете 1; иначе връща 0; }

int parseInteger (char * число) {int number_int = 0; int брояч = strlen (число) - 1; int дължина = 0; while (дължина <= брояч) {превключвател (число [дължина]) {случай '0': число_инт = число_инт * 10 + 0; почивка; случай '1': номер_инт = номер_инт * 10 + 1; почивка; случай '2': номер_инт = номер_инт * 10 + 2; почивка; дело '3': number_int = number_int * 10 + 3; почивка; случай '4': номер_инт = номер_инт * 10 + 4; почивка; дело '5': number_int = number_int * 10 + 5; почивка; дело '6': number_int = number_int * 10 + 6; почивка; дело '7': number_int = number_int * 10 + 7; почивка; дело '8': number_int = number_int * 10 + 8; почивка; дело '9': число_инт = число_инт * 10 + 9; почивка; случай '+': почивка; случай '-': номер_инт = номер_инт * (-1); почивка; } дължина ++; } if (число [0] == '-') number_int * = -1; връщане номер_инт; }

int main () {char номер [32767]; int number_int = 0; cin >> номер; if (checkInteger (число)) {number_int = parseInteger (число); cout <


Отговор 2:

Първо в C, ако използвате scanf ("% d", & num) и дефинирате num като тип int, тогава по подразбиране ще избере само num преди точка. бивш:

int num;

scanf ("% d", & num);

вход: 34.45

тогава в този случай само num = 34

Но в случай, че се опитате да изберете друг номер след това, ще срещнете грешка, защото този път ще получите номера след dot.ex:

int num, num_later;

scanf ("% d", & num);

scanf ("% d", & num_later);

вход: 34.45

тогава в този случай num = 34 и num_later = 45

Ако приемем, че въвеждате число с плаваща запетая и след това проверявате дали неговият int или float, можете да направите това, както следва:

#include

#include

int main ()

{

int num_less, num_greater;

float num;

scanf ("% f", & num);

printf ("% f", брой);

num_less = етаж (num);

num_greater = таван (num);

ако (num_less == num_greater)

printf ("неговото цяло число");

друго

printf ("не е цяло число");

връщане 0;

}

забележка: можете да проверите за пода и тавана в мрежата.


Отговор 3:

Типичният начин за приемане на въведеното цяло число е:

int a;scanf ("% d", & a);

Въпреки това не можете да откриете плувка с% d, тъй като началото на всяко число с плувка е цяло число. Има много стандартни начини за проверка за определен тип данни; като първо да прочетете целия ред от fgets () и да го анализирате с sscanf (). Но тъй като тепърва започвате с C, бих предложил нещо подобно:

int a; дълго двойно b; scanf ("% f", & b); a = (int) b;ако (a == b) { // вашият код }друго // Поискайте да въведете цяло число.

Отговор 4:

Виждам, че поставеният въпрос е метод за валидиране на стойността, въведена от потребителя. Макар и късно, нека да отговоря на правилния метод е да съхранявам буквите в низ.

1. Докато приемате буквите, уверете се, че това са само цифри и не нищо друго освен това.

2. Докладвайте на потребителя, ако е нарушен и му позволете да прави корекции.

3. Можете да помислите за включване / изключване на знаци, както предпочитате.

4. Преобразувайте приетия низ в цяло число.

5. / КРАЙ /


Отговор 5:

C предоставя библиотека със заглавки, известна като 'ctype.h'

Можете да използвате тази библиотека, за да откриете лесно дали входът е цяло число или не. Позволете ми да ви преведа през примерен код за заглушаване ..

#include #include int main (){char c = getchar ();if (isdigit (c)) // функция isdigit (), за да провери дали I / P е цифрова, връща 1, ако е вярно.{printf ("Цифра \ n");}връщане 0;}

Отговор 6:
char ch = getchar ();if (isdigit (ch)) printf ("Цяло число");друго printf ("Not Integer");

Отговор 7:

използвайки sizeof (). int размер е 2

байта