Bài tập  /  Bài đang cần trả lời

Lập trình - Lớp 8
15/03 20:38:01

Viết chương trình nhập n số nguyên khác 0 (n nhập từ bàn phím)

Bài 2: (5đ) Dãy số.
Viết chương trình nhập n số nguyên khác 0 (n nhập từ bàn phím). In ra màn
hình:
+ Giá trị lớn nhất của dãy.
+ Các số chẵn lớn hơn 0 của dãy.
+ Dãy đan dấu là dãy có tính chất: Không có hai phần tử cạnh nhau có dấu
giống nhau. Cho biết dãy vừa nhập có đan dấu không?
Ví dụ: Với n = 5 và dãy các số nhập vào là: 14; -4; 21; -1; 4

thì in ra kết quả: + Gia tri lon nhat la: 21

+ Cac so chan lon hon 0 la: 14 ; 4
+ Day la day dan dau
1 trả lời
Hỏi chi tiết
Trợ lý ảo
97
Tham khảo câu trả lời từ Trợ lý ảo Lazi
```python
n = int(input("Nhập số phần tử của dãy: "))
lst = []
for i in range(n):
num = int(input(f"Nhập số thứ {i+1}: "))
lst.append(num)

max_value = max(lst)
even_numbers = [num for num in lst if num > 0 and num % 2 == 0]

is_alternating = True
for i in range(1, len(lst)):
if lst[i] * lst[i-1] > 0:
is_alternating = False
break

print("+ Giá trị lớn nhất của dãy là:", max_value)
print("+ Các số chẵn lớn hơn 0 của dãy là:", " ; ".join(map(str, even_numbers)))
if is_alternating:
print("+ Đây là dãy đan dấu")
else:
print("+ Đây không phải là dãy đan dấu")
```
Kết quả:
```
Nhập số phần tử của dãy: 5
Nhập số thứ 1: 14
Nhập số thứ 2: -4
Nhập số thứ 3: 21
Nhập số thứ 4: -1
Nhập số thứ 5: 4
+ Giá trị lớn nhất của dãy là: 21
+ Các số chẵn lớn hơn 0 của dãy là: 14 ; 4
+ Đây là dãy đan dấu
```
1
0
Quang Cường
15/03 21:46:05
+5đ tặng
program BaiToan;
const
  MAX = 100;
var
  n, i, maxVal, countEven, countDiffSign: integer;
  arr: array[1..MAX] of integer;
  hasDiffSign: boolean;

begin
  // Nhập số phần tử của dãy
  repeat
    write('Nhap so phan tu cua day (khong qua ', MAX, '): ');
    readln(n);
  until (n > 0) and (n <= MAX);

  // Nhập dãy số nguyên từ bàn phím
  writeln('Nhap cac phan tu cua day (khac 0):');
  for i := 1 to n do
  begin
    repeat
      write('Nhap phan tu thu ', i, ': ');
      readln(arr[i]);
    until arr[i] <> 0; // Đảm bảo số nhập vào khác 0
  end;

  // Tìm giá trị lớn nhất của dãy
  maxVal := arr[1];
  for i := 2 to n do
    if arr[i] > maxVal then
      maxVal := arr[i];
  writeln('+ Gia tri lon nhat la: ', maxVal);

  // In ra các số chẵn lớn hơn 0 của dãy
  countEven := 0;
  writeln('+ Cac so chan lon hon 0 la:');
  for i := 1 to n do
    if (arr[i] > 0) and (arr[i] mod 2 = 0) then
    begin
      writeln(arr[i]);
      countEven := countEven + 1;
    end;
  if countEven = 0 then
    writeln('Khong co so chan lon hon 0.');

  // Kiểm tra dãy đan dấu
  hasDiffSign := true;
  countDiffSign := 0;
  for i := 2 to n do
  begin
    if (arr[i] * arr[i - 1] > 0) then
    begin
      hasDiffSign := false;
      break;
    end;
  end;
  if hasDiffSign then
    writeln('+ Day la day dan dau')
  else
    writeln('+ Day khong phai la day dan dau');

  writeln;
end.
 

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng ký tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng bạn bè học sinh cả nước, đến LAZI, sôi động, tích cực, trải nghiệm
Câu hỏi Lập trình mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo