只允许整数输入的程序
给定一个输入值N ,任务是只允许从用户那里获取整数输入。
现在,如果用户输入除整数以外的任何输入,即字符或符号,程序将不会接受它。下面是实现这种方法的 C 程序:
C
// C program for the above approach
#include
// Driver Code
int main()
{
int a;
printf("Enter the input: ");
// Take the input from console
scanf("%d", &a);
// Display the output
printf("The value entered by the user is: ");
printf("%d", a);
return 0;
}
C
// C program for the above approach
#include
// Driver Code
int main()
{
int x = 0;
x = getIntegerOnly();
printf("\nvalue entered is: %d", x);
}
// Function to check if the user
// entered value is integer or not
int getIntegerOnly()
{
int num = 0, ch;
printf("Enter the input: ");
do {
ch = getch();
// Checks the ASCII code of '
// digits 0 to 9
if (ch >= 48 && ch <= 57) {
printf("%c", ch);
// To make a digit
num = num * 10 + (ch - 48);
}
// 13 is carriage return it breaks
// and return the input
if (ch == 13)
break;
} while (1);
return (num);
}
输出:
说明:在上面的程序中,如果输入是一个字符值,那么 scanf()函数将接受输入但不会在输出屏幕上打印任何内容,或者它会忽略该字符而只打印整数。因此,为了避免这个问题,让我们讨论如何编写一个只接受整数输入的程序。以下是相同的步骤:
步骤:以下程序涉及的步骤是:
- 步骤 1:用户创建一个名为getIntegeronly()的函数并将其分配给 int x。
- 步骤 2:在这个函数,输入的输入将经过一个 do-while 循环,其中 if 语句检查整数的 ASCII 码。如果 ASCII 码与整数 ASCII 码匹配,则输入将显示在屏幕上。
do
{
If( ch>=48 && ch<=57)
}
Here ch is the input to be enter and 48 to 57 is the
ASCII Code of 0 to 9 respectively.
- 第 3 步:要使单个数字成为数字,请将数字乘以输入的整数。
num = num * 10 + (ch – 48)
Here num * 10 will change the place value of the integer to make
it digit and (ch – 48) will add the integer by subtracting its ASCII code.
- 第 4 步:为了中断循环,添加一个 if 语句,这样循环就不会进入无限循环。
if(ch == 13)
break;
Here 13 is the ASCII code of carriage return which breaks and
return the input value.
- 第 5 步:返回函数将存储在num 中的整数返回给x ,输出将打印在屏幕上。
printf("you have entered %d", x)
下面是实现上述方法的 C 程序:
C
// C program for the above approach
#include
// Driver Code
int main()
{
int x = 0;
x = getIntegerOnly();
printf("\nvalue entered is: %d", x);
}
// Function to check if the user
// entered value is integer or not
int getIntegerOnly()
{
int num = 0, ch;
printf("Enter the input: ");
do {
ch = getch();
// Checks the ASCII code of '
// digits 0 to 9
if (ch >= 48 && ch <= 57) {
printf("%c", ch);
// To make a digit
num = num * 10 + (ch - 48);
}
// 13 is carriage return it breaks
// and return the input
if (ch == 13)
break;
} while (1);
return (num);
}
输出:
说明:在执行程序时可以观察到,程序只接受整数输入并将输入打印在屏幕上。
想要从精选的视频和练习题中学习,请查看C 基础到高级C 基础课程。