Làm thế nào để tính tổng các phần tử mảng la bội của k

uses crt;var s,i,n,k:longint; a:array[1..100]of longint;beginclrscr;   write('Nhap n (n<=100): ');readln(n);   write('Nhap k: ');readln(k);   for i:=1 to n do      begin         write('Nhap so thu ',i,': ');readln(a[i]);         if a[i] mod k=0 then s:=s+a[i];      end;   writeln(s);readln

end.

Program NN;Uses crt;Var A: array[1..100] of longint;    n,i,s,d: longint;Begin        Clrscr;        Write('Nhap n: '); Readln(n);        s:=0; d:=0;        For i:=1 to n do        Begin

                Read(A[i]);

                If A[i] mod 3 = 0 then 

                Begin                     inc(d);

                     s:=s+A[i];

                End;        End;        Writeln(s);        Write(d);        Readln

End.

  • lý thuyết
  • trắc nghiệm
  • hỏi đáp
  • bài tập sgk

cho dãy số N và 1 số nguyên k. tính tổng các phần tử là bội số của 3 và 5

Các câu hỏi tương tự

1. Pascal Nhập xuất và tính tổng các phần tử trong mảng

Nhập xuất và tính tổng các phần tử trong mảng.

Ví dụ: A:        1   5   6   7   4 

Kết quả:          Tong S = 23

Hướng dẫn: Để giải quyết bài toán cần phải đảm bảo các vấn đề:

-  Nhập mảng, có thể xây dựng thành hàm để đóng gói và sử dụng lại. Các thao tác theo yêu cầu:

(1) Nhập số N.

(2) Tiến hành lặp (từ 0 đến N-1) và nhập cho các giá trị Ai trong mảng.

Lưu ý: N phải được vào truyền theo dạng tham biến (tức là &N)

-  Xuất mảng. Công việc đơn giản là sử dụng voøng lặp từ 0 đến N-1 để in ra các giá trị Ai cho mảng. Sau đó, Writeln  xuống dòng.

-   Hàm tính tổng các phần tử cho một mảng A

+ Khai báo và khởi tạo toång S là 0.

+ Sử dụng một vòng lặp (từ 0 đến N-1 để duyệt qua tất cả các giá trị Ai) để tính cộng dồn giá trị của Ai vào tổng S.

-  Viết thân chöông trình chính với nội dung dùng để kiểm tra kết quả thực hiện của hàm.

+ Khai báo mảng A có tối đa 20 phần tử và biến N chỉ số lượng phần tử của A.

+ Gọi hàm nhập mảng để nhập mảng A, với N phần tử.

+ Gọi hàm xuất mảng A, với N phần tử.

+ In giá trị của tổng các phần tử bằng cách truyền trực tiếp giá trị trả về của việc tính tổng cho Writeln(……)

+ Gọi hàm Readln( ) trước khi kết thúc  để dừng lại xem kết quả.

Chương trình:

2. Một số bài tập tính tổng với mảng 1 chiều

Bài toán 1: Nhập vào mảng 1 chiều từ bàn phím chỉ chứa được 100 phần tử có giá trị kiểu nguyên. Tính tổng các giá trị là số chẵn sau đó in ra màn hình.

Bài tập này mình cũng đã hướng dẫn trong mảng 1 chiều về cách tìm số chẵn. Cách làm như sau, xây dựng Function TongChan(Var A:Arr100;Var N:Integer):Integer; Trong đó A:Arr100 là mảng 1 chiều có kích thước 100 phần tử và N là số phần tử của mảng mà bạn đưa vào. 

1. Tạo biến S:=0 để lưu tổng chẵn ban đầu bằng 0.

2. Duyệt từ phần tử A[i] đầu tiên đến A[N] kiểm tra nếu chia dư cho 2 bằng 0 => chẵn thì S:=S+A[i].

Đơn giản chỉ có vậy thôi và dưới đây là Function của bài tập này.

Nếu như bạn muốn tính tổng các số lẻ có trong mảng 1 chiều chỉ cần sửa đoạn If(A[i] mod 2 = 0) then thành If(A[i] mod 2 = 1) then là sẽ thành hàm tính tổng các số lẻ.

Bài toán 2: Cho người dùng nhập mảng 1 chiều biết mảng chỉ chứa được 100 phần tử số nguyên dương. Hãy tính tổng của mảng đều chia hết cho 4 và in kết quả ra màn hình.

Bài tập tương tự như bài ở trên các bạn chỉ cần thay đoạn If(A[i] mod 2 = 0) then thành If(A[i] mod 4 = 0) then là đã có thể sử dụng lại chương trình.

Nếu như có các bài toán tương tự bắt chúng ta tính tổng của các số chia hết cho 3, cho 5, cho 6 cho 7,… thì chúng ta làm sao đây? không thể ngồi viết hàng loạt các chương trình con để tính cho từng bài tập được mà các bạn chỉ cần tạo ra một chương trình con duy nhất có thể sử dụng cho tất cả các trường hợp như sau.

Chương trình đây đủ cho các bạn

Viết hàm tính tổng các phần tử là bội của 3 hoặc 5 trong mảng các số nguyên.

Hướng dẫn

Bài tập mang tính tham khảo, hỗ trợ các bạn làm quen và luyện tập với các bàn toán lập trình cơ bản trong C++.

Kteam khuyến khích các bạn tự phân tích đề bài > tự giải bài toán > debug để kiểm tra kết quả và fix lỗi trong quá trình giải. Sau đó, bạn có thể tham khảo source code mẫu để hoàn chỉnh bài tập. 

Để được hỗ trợ tốt nhất, bạn có thể đặt câu hỏi ở phần bình luận bên dưới bài viết hoặc ở mục Hỏi & Đáp.

Source

// Viet ham tinh tong cac phan tu la boi cua 3 hoac 5 trong mang cac so nguyen. #include<iostream> #include<time.h> #define MAX 100 using namespace std; void NhapMang(int a[], int n) { for(int i=0; i<n; i++) { cout<<"\nNhap phan tu thu "<< i <<": "; cin>>a[i]; } } void MangNgauNhien(int a[], int n) { srand((unsigned)time(NULL)); for(int i=0; i<n; i++) a[i]=rand()%10 - rand()%10; } void XuatMang(int a[], int n) { for(int i=0; i<n; i++) cout<< a[i] <<"\t"; } int TongPTBoi3va5(int a[], int n) { int tong=0; for(int i=0; i<n; i++) if(a[i]%3==0 || a[i]%5==0) tong = tong + a[i]; return tong; return -1; } void main() { int a[MAX], i, n, kq; cout<<"Nhap so luong phan tu thuc: "; cin>>n; //NhapMang(a,n); MangNgauNhien(a,n); XuatMang(a,n); kq104=TongPTBoi3va5(a,n); cout<<"\nTong cac phan tu la boi cua 3 hoac 5 co trong mang la: "<< kq; cout<<endl; }

Kết luận

Bạn có thể củng cố kiến thức C++ từ khóa Lập trình C++ cơ bản.

Hoặc tìm hiểu thêm các bài tập khác trong khóa Bài toán kinh điển trong lập trình

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.

Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Em newbie cần ac giúp em định hướng bài toán này với ạ

Tạo mảng A gồn n (n<=100) số nguyên, mỗi số có giá trị tuyệt đối không vượt quá 300. Tính tổng các phần tử của mảng là bội số của một số nguyên dương k cho trước.

Duyệt từ đầu đến cuối. a0

Làm thế nào để tính tổng các phần tử mảng la bội của k
an - 1.
Làm thế nào để tính tổng các phần tử mảng la bội của k

Tạo sum = 0.
Kiểm tra xem ai có là bội của k không.

  • có cộng vô sum.
  • không thì bỏ qua, sét đến ai + 1

2 Likes

khi kiểm tra rồi thì dùng lệnh nào cộng giá trị mảng vào sum đc hả ông chỉ tui

#include <iostream> using namespace std; void nhapmang(int a[], int n) { for (int i=0;i<n;i++) { cout <<"\n Gia tri #"<<i+1<<" la :"; cin >>a[i]; } } void xuatmang(int a[], int n) { for (int i=0;i<n;i++) { cout <<"\nGia tri cua thu #"<<i+1<<" la :"<<a[i]; } } void xuLybaitoan(int a[], int n) { int k; long sum=0; for (int i=0;i<n;i++) { if (a[i]%k==0) { sum+= a[i]; } } cout <<"\nKet qua la :"<<sum; } int main() { int n, k; int a[100]; cout <<"Moi ban nhap so luong mang :"; cin >>n; cout <<"\nMoi ban nhap so k :"; cin >>k; nhapmang(a,n); xuatmang(a,n); xuLybaitoan(a,n); return 0; }

Ông coi tui làm sai chỗ nào với tính tổng như nó chỉ =0.

Không truyền k cho hàm xuLybaitoan() à?

3 Likes

à nhỉ tui quên mất sr ông đãng quá

Home Categories FAQ/Guidelines Terms of Service Privacy Policy