我已经写了一个程序,接受4位数字的输入,并在第1000,100,10和单位位打印数字。我想添加一个条件,即如果用户输入的数字多于或少于4位,则输出应为Only 4-digits are allowed.
#include<stdio.h>
int main(){
int a, th, h, t, u;
printf("Enter a 4-digit number: ");
scanf("%d", &a);
u = a%10;
t = (a/10)%10;
h = (a/100)%10;
th = (a/1000);
printf("\nThousands = %d, Hundreds = %d, Tens = %d, Units = %d\n", th, h, t, u);
return 0;
}该怎么办呢?
发布于 2021-10-15 01:49:35
这取决于"0999“是否被认为是一个4位数字。如果不是,那么任何已经发布的解决方案都可以工作。如果是,则必须将输入作为字符串进行扫描,以便在将其转换为int之前测试其长度。你也可以走这条路:
char digits[5];
scanf("%c%c%c%c", &digits[0], &digits[1], &digits[2], &digits[3]);
digits[4] = '\0'; // terminate the character array.
for(int i=0; i<4; i++) {
if (digits[i] < '0' or digits[i] > '9') {
//throw a fit at the user and return
}
}
printf("thousands: %c, hundreds: %c, tens: %c, ones: %c\n", digits[0].... etc.);发布于 2021-10-15 01:39:10
您可以尝试以下代码
if(a<1000 || a>9999)
{
printf("Only 4-digits are allowed:");
}https://stackoverflow.com/questions/69579015
复制相似问题