Nhập vào một dãy gồm n chữ số, in ra phần tử lớn thứ 2 và phần tử nhỏ thứ 2

Mọi người xem em sai ở đâu với ạ :frowning: ví dụ thử với dãy 1121 115 62 92 112 thì nó lại in ra 92 và 1 )

#include<stdio.h>
int main()
{
	long n, s[100000], i, j, temp, x;
	scanf("%ld\n",&n);
	x=n-1;
	for(i=1;i<=n;i++)
		scanf("%ld",&s[i]);
	for(i=1;i<=n-1;i++)
	{
		for(j=i+1;j<=n;j++)
		{
			if(s[i]>s[j])
			{
				s[i]=temp;
				s[i]=s[j];
				s[j]=temp;
			}
		}
	}
	printf("%ld",s[x]);
	printf(" ");
	printf("%ld",s[2]);
}

Đọc kĩ lại đoạn này nha.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?