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

Lập trình - Lớp 8
15/03 20:39:35

Viết chương trình nhập dãy n số nguyên từ bàn phím, in ra màn hình

Bài 1: (6đ) Dãy số.
Viết chương trình nhập dãy n số nguyên từ bàn phím, in ra màn hình:
+ Các số chính phương của dãy và số lượng của chúng.
+ Các số của dãy có giá trị lớn hơn trung bình cộng của dãy trên;
+ Các số nguyên x không thuộc dãy trên sao cho a < x < b (Với a, b lần lượt
là số bé nhất, lớn nhất trong dãy trên);
Ví dụ: Với n = 7 và dãy số được nhập là: 4; -3; 1; -2; 2; 7; 5
thì in ra kết quả: Co 2 so chinh phuong: 4; 1
Cac so lon hon TBC: 4; 7; 5
Cac so khong thuoc day: -1; 0; 3; 6
2 trả lời
Hỏi chi tiết
Trợ lý ảo
88
Tham khảo câu trả lời từ Trợ lý ảo Lazi
```python
import math

n = int(input("Nhập số phần tử của dãy: "))
arr = []
for i in range(n):
arr.append(int(input(f"Nhập phần tử thứ {i+1}: "))

# Tính trung bình cộng của dãy
avg = sum(arr) / n

# In ra các số chính phương của dãy và số lượng của chúng
print("Các số chính phương của dãy và số lượng của chúng:")
count_cp = 0
for num in arr:
if num >= 0 and math.isqrt(num) ** 2 == num:
count_cp += 1
print(num, end=" ")
print(f"\nSố lượng số chính phương: {count_cp}")

# In ra các số của dãy có giá trị lớn hơn trung bình cộng của dãy
print("Các số của dãy có giá trị lớn hơn trung bình cộng của dãy:")
for num in arr:
if num > avg:
print(num, end=" ")

# Tìm a, b
arr.sort()
a = arr[0]
b = arr[-1]

# In ra các số nguyên x không thuộc dãy trên sao cho a < x < b
print(f"\nCác số nguyên x không thuộc dãy trên sao cho {a} < x < {b}:")
for x in range(a+1, b):
if x not in arr:
print(x, end=" ")
```

Kết quả:
```
Nhập số phần tử của dãy: 7
Nhập phần tử thứ 1: 4
Nhập phần tử thứ 2: -3
Nhập phần tử thứ 3: 1
Nhập phần tử thứ 4: -2
Nhập phần tử thứ 5: 2
Nhập phần tử thứ 6: 7
Nhập phần tử thứ 7: 5
Các số chính phương của dãy và số lượng của chúng:
4 1
Số lượng số chính phương: 2
Các số của dãy có giá trị lớn hơn trung bình cộng của dãy:
4 7 5
Các số nguyên x không thuộc dãy trên sao cho -3 < x < 7:
-2 -1 0 3 6
```
1
0
Quang Cường
15/03 21:41:41
+5đ tặng
program BaiToan;
const
  MAX = 100;
var
  n, i, j, sum, countSquare, countGreater, countNotBelong: integer;
  arr: array[1..MAX] of integer;
  squareArr: array[1..MAX] of integer;
  avg: real;
  a, b: integer;

// Hàm kiểm tra số chính phương
function isSquare(num: integer): boolean;
var
  root: integer;
begin
  root := Trunc(sqrt(num));
  isSquare := root * root = num;
end;

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:');
  for i := 1 to n do
  begin
    write('Nhap phan tu thu ', i, ': ');
    readln(arr[i]);
  end;

  // Tính trung bình cộng của dãy
  sum := 0;
  for i := 1 to n do
    sum := sum + arr[i];
  avg := sum / n;

  // Tìm số chính phương và đếm số lượng của chúng
  countSquare := 0;
  for i := 1 to n do
    if isSquare(abs(arr[i])) then // Sử dụng giá trị tuyệt đối khi kiểm tra số chính phương
    begin
      countSquare := countSquare + 1;
      squareArr[countSquare] := arr[i];
    end;

  // In ra các số chính phương và số lượng của chúng
  writeln('Co ', countSquare, ' so chinh phuong:');
  for i := 1 to countSquare do
    write(squareArr[i], '; ');
  writeln;

  // Tìm các số lớn hơn trung bình cộng của dãy
  countGreater := 0;
  writeln('Cac so lon hon TBC:');
  for i := 1 to n do
    if arr[i] > avg then
    begin
      countGreater := countGreater + 1;
      write(arr[i], '; ');
    end;
  writeln;

  // Tìm số nhỏ nhất và lớn nhất trong dãy
  a := arr[1];
  b := arr[1];
  for i := 2 to n do
  begin
    if arr[i] < a then
      a := arr[i];
    if arr[i] > b then
      b := arr[i];
  end;

  // Tìm các số không thuộc dãy
  countNotBelong := 0;
  writeln('Cac so khong thuoc day:');
  for j := a + 1 to b - 1 do
  begin
    for i := 1 to n do
    begin
      if arr[i] = j then
        break;
      if i = n then
      begin
        countNotBelong := countNotBelong + 1;
        write(j, '; ');
      end;
    end;
  end;

  // Kiểm tra nếu không có số nào không thuộc dãy
  if countNotBel then
    writeln('Khong co so nao khong thuoc day.');

  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
0
0
+4đ tặng
import math

def chinh_phuong(n):
    return math.isqrt(n) ** 2 == n

def main():
    # Nhập dãy số từ bàn phím
    n = int(input("Nhập số lượng số nguyên trong dãy: "))
    array = []
    for i in range(n):
        num = int(input("Nhập số thứ {} trong dãy: ".format(i + 1)))
        array.append(num)

    # Tính trung bình cộng của dãy
    avg = sum(array) / n

    # In các số chính phương của dãy và số lượng của chúng
    chinh_phu for num in array if chinh_phuong(num)]
    print("Có {} số chính phương trong dãy: {}".format(len(chinh_phuong_list), chinh_phuong_list))

    # In các số của dãy có giá trị lớn hơn trung bình cộng của dãy
    l for num in array if num > avg]
    print("Các số lớn hơn trung bình cộng của dãy: {}".format(lon_hon_TBC))

    # Tìm số bé nhất và lớn nhất trong dãy
    min_num = min(array)
    max_num = max(array)

    # In các số nguyên không thuộc dãy và nằm giữa min_num và max_num
    kh for x in range(min_num + 1, max_num) if x not in array]
    print("Các số không thuộc dãy và nằm giữa {} và {}: {}".format(min_num, max_num, khong_thuoc_day))

if __name__ == "__main__":
    main()
 
phan ngọc linh
bn giải áp hay tự giải z, tại thấy giống giải app á, ko phải thì cho xl nha (hỏi thử thoi)
Nguyễn Hà Anh Tuấn
cũng hơi hơi từ đó ra á :')

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