|
|
- /*用一维数组解决下列问题:取20个10-100之间的数,没读取一个数是如果和它前面读取的数不想等时就打印,这个数,如果相等就不打印而接着读取下面的数*/
- #define size 20
- void print(int array[],int n)
- {
- int i=1,j,flag;
- printf("%3d",array[0]);
- while(i<n)
- {
- for(j=0;j<i;j++)
- {
- if(array[j]==array[i])
- flag=1;
- else if(array[j]!=array[i])
- flag=0;
- }
- if(flag==0)
- {
- printf("%3d",array[i]);
- i++;
- }
- else if(flag==1)
- i++;
- }
- printf("\n");
- }
- main()
- {
- int a[size]={1,2,3,4,5,6,7,7,9,0,1,2,3,7,5,6,7,8,9,0,};
- print(a,size);
- }
复制代码
我的输出是:
- [fydream@fydream c语言]$ gcc -ggdb3 -o fydream exercise6-15.c
- exercise6-15.c:30:6: warning: no newline at end of file
- [fydream@fydream c语言]$ ./fydream
- 1 2 3 4 5 6 7 9 0 1 2 3 7 5 6 7 8 9 0
- [fydream@fydream c语言]$
复制代码
正确的输出应该为 1 2 3 4 5 6 7 9 0 8
为什么只把第一个重复的两个7删除了一个,为什么后面的1 2 3 7 5 6 9 0没有被监测出重复
没有没有被删除?谢谢指教!!!!!!!!!!!!!!!!!!!!!! |
|