Đoạn code dưới của em bị lỗi không biết sửa như nào ạ, ví dụ khi nhập mảng kích thước 2x3 tức là có 6 phần tử nhưng nó bắt mình nhập 7 số, giả sử em nhập 7 số đó lần lượt là 1 2 3 4 5 6 7 thì nó mảng chỉ nhận đúng 6 phần tử đầu và bỏ phần tử cuối.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void NhapMang(int* &p, long long &d, long long &c)
{
printf("Nhap so dong cua mang: ");
scanf_s("%lld", &d);
printf("Nhap so cot cua mang: ");
scanf_s("%lld", &c);
p = (int*)malloc(d * c * sizeof(int));
printf("\n");
for (int i = 0; i < d; i++)
{
for (int j = 0; j < c; j++)
{
printf("Nhap a[%d][%d] ", i + 1, j + 1);
scanf_s("%d ", (p + c * i + j));
}
}
printf("\n");
}
void XuatMang(int* p, long long d, long long c)
{
printf("Mang vua nhap la:\n");
for (int i = 0; i < d; i++)
{
for(int j = 0; j < c; j++)
{
printf("%d\t", *(p + c * i + j));
}
printf("\n");
}
printf("\n");
}
void TongCot(int* p, long long d, long long c, FILE* f)
{
for(int i = 0; i < c; i++)
{
int sum = 0;
printf("Tong cac phan tu cot %d la ", i + 1);
for(int j = 0; j < d; j++)
{
sum += *(p + c * j + i);
}
printf("%d\n", sum);
fprintf(f, "%d\t", sum);
}
}
int main()
{
long long d, c;
int* p;
FILE* f;
f = fopen("D:\\output2.txt", "w+");
NhapMang(p, d, c);
XuatMang(p, d, c);
TongCot(p, d, c, f);
return 0;