01/10/2018, 12:31

Hộ em bài này với ạ. Khi sub không hiểu sao chỉ được 70 ạ

Nguồn: http://www.spoj.com/PROTRAIN/problems/PROT3H/

Cho mảng (a, n) gồm các số nguyên. In ra các phần tử khác nhau trong dãy và số lần xuất hiện của chúng.

Input:

  • Dòng 1 chứa số nguyên n (0<n<=1000) là độ dài dãy a.
  • Dòng 2 chứa n số nguyên a[0], a[1],…, a[n-1] là giá trị các phần tử của dãy (|a[i]|<=10000, i=0,…n-1)

Output:

  • Dòng 1 in ra số nguyên dương S là số lượng các phần tử khác nhau trong dãy
  • S dòng tiếp theo, mỗi dòng in ra 2 số nguyên lần lượt là giá trị của phần tử trong dãy a và số lần xuất hiện của nó.

VD:

Input:

5

1 2 2 1 3

Output:

3

1 2

2 2

3 1

Input:

4

1 1 1 1

Output:

1

1 4

Bài làm:

#include<stdio.h>

void sapXep(int a[], int n){
	int i , j;
	for(i=0 ; i<=n-2 ;i++){
		for(j=i +1 ; j<= n-1; j++){
			int tmp ;
			if(a[i] > a[j]){
				tmp = a[i];
				a[i] = a[j]; 
				a[j] = tmp ;
			}
		}
	}
}

main(){
	int a[1000], n, count = 1 ;
	int i, j;
	scanf("%d", &n);
	for(i= 0 ; i<= n-1 ;i++)
		scanf("%d", &a[i]);
	
	sapXep(a,n);
	
	for(i=0 ; i<= n-2 ;i++){
		for(j=i+1 ; j<= n -1 ;j++){
			if(a[i] != a[j]){
				count++;
				break;
			}
		}
		i = j ;
	}
	printf("%d
", count);
	for(i=0; i<= n-1 ; i++){
		count = 1 ;
		for(j= i+1 ; j<= n-1 ; j++){
			if(a[i] == a[j]){
				count++ ;
			}
			else
				break;
		}
		printf("%d %d", a[i], count);
		printf("
");
		i = j - 1;
	}
}
HK boy viết 14:42 ngày 01/10/2018

Bạn xem lại cách đặt title cho câu hỏi sao cho người khác nhìn vào không thấy phản cảm.

Test thọt:

Inp:
4
-2 -1 1 2

Out:
4
-2 1
-1 1
1 1
2 1
Slim Coder viết 14:41 ngày 01/10/2018

em không thấy sai chỗ nào a ơi

HK boy viết 14:42 ngày 01/10/2018

Bạn chạy test của mình chưa?

HK boy viết 14:34 ngày 01/10/2018
for(i=0 ; i<= n-2 ;i++){
	for(j=i+1 ; j<= n -1 ;j++){
		if(a[i] != a[j]){
			count++;
			break;
		}
	}
	i = j ;
}

Đọc kĩ đoạn này nhé.

Hieu Hoang viết 14:36 ngày 01/10/2018

nhập dãy, sắp xếp, tính dãy có bao nhiêu giá trị khác nhau và mỗi giá trị lặp lại bao nhiêu lần ?
bạn post code phải nói code để làm gì với lỗi ở đâu chứ ko ai giúp đc

HK boy viết 14:41 ngày 01/10/2018

bạn post code phải nói code để làm gì với lỗi ở đâu chứ ko ai giúp đc

Mình thấy code khá dễ hiểu mà. Cái chính là thớt code phức tạp quá.

Hieu Hoang viết 14:38 ngày 01/10/2018

mình nói cái mình nghĩ là cơ bản khi hỏi bài thôi, còn code dễ hiểu nhưng chắc gì đã đúng với việc mà bạn kia muốn làm

X viết 14:36 ngày 01/10/2018

2 posts were merged into an existing topic: Topic chứa các reply được cho là off-topic - version 2

Bài liên quan
0