NYOJ 48 小明的调查作业

来源:互联网 发布:it教程 编辑:程序博客网 时间:2024/06/05 10:04

原题链接


这题真奇葩,在输出的行末加了回车竟然WA,把回车换成空格就ac,真无语,史上最烂题。


附ac代码:

 #include <stdio.h>#include <stdlib.h>int a[1001];int cmp(const void *a, const void *b){return *(int *)a - *(int *)b;}int main(){int n, t, count;scanf("%d", &n);int i = 0; count = n;while(i != n) scanf("%d", &a[i++]);qsort(a, n, sizeof(int), cmp); //排序//去重for(i = 0; i != n; ++i){if(!a[i]) continue;for(int j = i + 1; j != n; ++j){if(a[i] == a[j]) a[j] = 0;else {i = j - 1; break;}}}for(i = 0; i != n; ++i)if(!a[i]) --count;printf("%d\n", count);for(i = 0; i != n; ++i)if(a[i]) printf("%d ", a[i]);return 0;}        


原WA但更规范的代码:

 #include <stdio.h>#include <stdlib.h>int a[1001];int cmp(const void *a, const void *b){return *(int *)a - *(int *)b;}int main(){int n, t, count;scanf("%d", &n);int i = 0; count = n;while(i != n) scanf("%d", &a[i++]);qsort(a, n, sizeof(int), cmp); //排序//去重for(i = 0; i != n; ++i){if(!a[i]) continue;for(int j = i + 1; j != n; ++j){if(a[i] == a[j]) a[j] = 0;else if(a[j] == 0) continue;else {i = j - 1; break;}}}for(i = 0; i != n; ++i)if(!a[i]) --count;printf("%d\n", count);for(i = 0; i != n - 1; ++i)if(a[i]) printf("%d ", a[i]);printf("%d\n", a[i]);return 0;}        



0 0