// mang 1 chieu.cpp : Defines the entry point for the console application.
//nhap vap mang so nguyen xuat mang vua nhap tinh tong cac phan tu trong mang
#include "stdafx.h"
#include <iostream>
using namespace std;
//nhap mang
void nhapmang(int *a, int n);
//in mang
void inmang(int *a, int n);
// tinh tong
int tongpt(int *a, int n);
int _tmain(int argc, _TCHAR* argv[])
{
int n;
int *a = new int[n];// dung phat dong
cout << "nhap phan tu n=";
cin >> n;
nhapmang(a, n);
inmang(a, n);
cout << "tong=" << tongpt(a, n) << endl;
// giai phong
delete[] a;
return 0;
}
//nhap mang
void nhapmang(int *a, int n)
{
for (int i = 0; i < n; i++)
{
cout << "phan tu thu " << i << ":";
cin >> a[i];
}
}
// in mang
void inmang(int *a, int n)
{
cout << "mang sau khi nhap:" << endl;
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
cout << endl;
}
// tinh tong cac phan tu
int tongpt(int *a, int n)
{
int tong = 0;
for (int i = 0; i < n; i++)
{
tong += a[i];
}
return tong;
}
Thắc mắc tại sao chương trình không hiểu n là gì
Hàm main của bạn đâu?
1 Like
hi. gio ms de ý để đăng lại
ms biết trag này nên cug ko rành lắm.
-
Bạn chưa cho máy tính biết n của bạn có giá trị bao nhiêu, mà bạn cấp phát động n phần tử, máy tính có hiểu được bạn muốn cấp phát bao nhiêu không?
-
Coi lại bài truyền tham chiếu vào hàm của anh @ltd để sửa lại hàm nhập mảng.
1 Like
rõ hơn đi ms học con trỏ nên hơi ngơ ngơ
ak minh hieu roi cam on ban
theo kinh nghiệm của mình thì int *a = new int[n] lúc này n đang làm 1 biến rác. Vậy nên nhập n trước rồi hãy khai báo biến mảng.
nhìn sơ lược qua thế thôi lười mở ide lên test
2 Likes
- Bạn dời cái dòng cấp phát động xuống dưới dong cin>>n;
mih quất lun do while rồi cho cin n nằm trog lun rồi hehe