#include<stdlib.h>
#include<time.h>
#include<iostream.h>
#include<math.h>
#define SIZE 4
main()
{
int a[SIZE], i,n
srand(time(NULL))
cin>>n
for(i=0i<=SIZE-1i++)
a[i]=rand()%10
for(i=0i<=SIZE-1i++)
cout<<a[i]
}
问题的确出在楼主自己说的那个地方,你只需要将代码当中else后边的两句放到一个语句块内就没有问题了,即如下所示if(a[i]!=a[l])
{
i++
}
else
{
printf("你输入的数与前面某个数字有重复,请重新输入。\n")
break
}
因为 break 会跳出当层for循环,在没有改动之前,你的for循环只能执行一次比较就(break)退出了。改动之后就可以扫描之前已经输入的所有数据。
最后建议楼主要有良好的编程习惯,那就是不管if else等后边的语句有多简单,都最好用{}包起来,这样不仅增强了程序的可读性,更加方便调试。好的编程习惯也是制胜的法宝。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)