30/09/2018, 17:21
Đọc file ma trận 2 chiều trên c
mấy bác xem dùm em tại sao cái hàm kiểm tra tam giác dưới của em nó không chạy
khi in ra kết quả chỉ có cái đọc file thôi. em thử debug thì cũng dậy nó bỏ qua cái hàm kiểm tra
luôn. cảm ơn mấy bác
#include "stdafx.h"
#include <iostream>
using namespace std;
#define MAX 100
//đọc dữ liệu từ tập tin
void docfile(char *fname, int a[][MAX], int &n)
{
FILE *fp;
fopen_s(&fp, fname, "rt");
if (!fp) return;
//đọc số dòng của ma trận
fscanf_s(fp, "%d", &n);
//đọc ma trận
for (int i = 0; i<n; i++)
for (int j = 0; j<n; j++)
if (j<i + 1)
fscanf_s(fp, "%d", &a[i][j]);
else
a[i][j] = 0;
fclose(fp);
}
//2. Xuất ma trận (kích thước dxc)
void xuatmt(int a[][MAX], int n){
int i, j;
for (i = 0; i<n; i++)
{
for (j = 0; j<n; j++)
{
cout.width(2); //quy định độ rộng để in
cout << a[i][j];
}
cout << endl; //xuống dòng khi sang dòng mới
}
}
// ktra tam giac dưới
bool ktrtamgduoi(int a[][MAX], int n)
{
int i, j;
for (i = 0; i<n; i++)
for (j = i + 1; j<n; j++)
if (a[i][j] != 0)
return false;
return true;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[MAX][MAX], n;
docfile("D:/INPUT.TXT", a, n);
xuatmt(a, n);
int k = ktrtamgduoi(a, n);
if (k == true) cout << "la ma tran tam giac duoi";
else cout << "khong la ma tran tam giac duoi";
return 0;
}
Bài liên quan
k là giá trị Kiểu INT, lúc trả về là bool (Không biết nó có tự ép kiểu ko?)
Bạn thử đổi sang bool k thử
mình thử rồi bạn, thậm chí chuyển hàm thành int hay void cũng ko dc, khó hiểu
a, xin lỗi bạn nka, nãy giờ mình chạy lộn chương chình khác. kaka. làm suy nghĩ nảy giờ, ẩu thiệt