现在的位置: 首页 > 综合 > 正文

NYOJ 48 小明的调查作业

2016年09月29日 ⁄ 综合 ⁄ 共 967字 ⁄ 字号 评论关闭

原题链接

这题真奇葩,在输出的行末加了回车竟然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;
}        

抱歉!评论已关闭.