我希望能够输入4位数字,并且程序只有在c语言中它们介于0和1之间时才认为有效

  • 本文关键字:有效 之间 语言 4位 数字 程序 我希望 c
  • 更新时间 :
  • 英文 :


我希望能够请求输入0到1之间的4位数字,但当我进行测试时,尽管输入了1001或其他数字,它仍然要求我进入屏幕。

#include <stdio.h> 
int main(void) { 
int n,n1,n2,n3,mod0,mod1,mod2,mod3;
do {//1025
printf("Ingresar un numero de 4 digitos: "); scanf("%d",&n);

n1 = n/10; //<- 102
mod0 = n%10; // <- mod 5
n2 = n1/10; // <- 10
mod1 = n1%10; // <- mod 2
n3 = n2/10; // <- 1
mod2 = n2%10; // <- 0
mod3 = n3%10; // 1

if  ((mod3 != 1 || mod3 != 0) && ( mod2 !=1 || mod2 != 0) && (mod1 != 1 || mod1 != 0) && (mod0 !=1 || mod0 != 0)){
printf("Ingresar digitos binariosn");
}
}while((mod3 != 1 || mod3 != 0) && ( mod2 !=1 || mod2 != 0) && (mod1 != 1 || mod1 != 0) && (mod0 !=1 || mod0 != 0));

return 0; 

}

由于循环中有scanf,所以它一直在请求数字。将printf("Ingresar un numero de 4 digitos: "); scanf("%d",&n);置于do-white循环之上将解决您的问题。

此外,您应该查看循环的条件。循环到n == 0不是更容易吗?

示例:

  1. n=1025,mod=0
  2. 而n!=0:
  3. mod=n%10(等于5(
  4. n=n/10(制造102(
  5. 检查mod是0还是1
  6. 重复下一个数字

在本例中,您将从n中分离出最后一个数字,并检查它是0还是1。

编辑:这个链接解释了我想用这个例子展示的内容。您应该检查数字是0还是1,而不是打印数字。

最新更新