我写了下面这段C代码来检查用户输入的数组中是否存在一个数字。但奇怪的是,它跳过了第三个
printf
语句,直接获取输入并在获取该输入后打印Enter the number you wish to look for
。这是什么原因?下面是代码和输入/输出框。
代码:
#include <stdio.h>
#include <stdlib.h>
void main() {
int arr[30], size, i, num, flag=0;
printf("Enter size of array. \n");
scanf("%d",&size);
printf("Enter %d array elements one by one. \n",size);
for (i=0; i<size; i++) {
scanf("%d \n",&arr[i]);
}
printf("Enter the number you wish to look for. \n");
scanf("%d",&num);
for(i=0;i<size;i++) {
if (num == arr[i]) {
flag++;
}
}
if (flag>0) {
printf("The number %d is present in the array.",num);
} else {
printf("The number %d is not present in the array.",num);
}
}
INPUT/OUTPUT:
Enter size of array.
5
Enter 5 array elements one by one.
1
2
3
4
5
5
Enter the number you wish to look for.
The number 5 is present in the array.
您可以看到,输入您想要查找的数字。
应该在5
之前显示,但事实并非如此。
解决方法
只需从scanf
中删除\n
即可解决问题。