Bài toán: Kiểm tra ma trận có toàn dương/âm hay không
Input: ma trận a có n dòng, n cột
Xử lý: duyệt mảng, nếu có 1 số nào đó nhỏ/lớn hơn 0 thì trả về -1, rồi thoát khỏi vòng lặp
Nếu duyệt đến hết mảng thì sẽ là toàn số dương/âm trả về 1
Output: không toàn số dương/âm -1, toan số dương/âm 1
Hàm kiểm tra số dương
int toanduong(int a[][MAX], int m, int n) { for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { if(a[i][j]<0) { return -1; break; } } } return 1;
Hàm kiểm tra số lẻ
int toanam(int a[][MAX], int m, int n) { for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { if(a[i][j]>0) { return -1; break; } } } return 1; }
Chương trình kiểm tra toàn dương hay không
#include<stdio.h> #include<conio.h> #include<math.h> #define MAX 100 void nhapmang(int a[][MAX], int &m, int &n); void xuatmang(int a[][MAX], int m, int n); int toanduong(int a[][MAX], int m, int n); void main() { int a[MAX][MAX], m,n,x,vtd,vtc; nhapmang(a,m,n); printf("\nnoi dung cua ma tran\n"); xuatmang(a,m,n); if(toanduong(a,m,n)==-1) printf("\nMa tran khong toan duong"); else printf("\nMa tran toan so duong "); printf("\nChuc Ban hoc tot"); getch(); } void nhapmang(int a[][MAX], int &m, int &n) { int i,j; do { printf("nhap vao so dong cua ma tran: "); scanf("%d",&m); }while(m<=0); do { printf("nhap vao so cot cua ma tran: "); scanf("%d",&n); }while(n<=0); for( i=0;i<m;i++) { for( j=0;j<n;j++) { printf("\nso phan tu a[%d][%d]: ",i,j); scanf("%d",&a[i][j]); } } } void xuatmang(int a[][MAX], int m, int n) { for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { printf("%5d",a[i][j]); } printf("\n"); } } int toanduong(int a[][MAX], int m, int n) { for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { if(a[i][j]<0) { return -1; break; } } } return 1; }
Mình chia sẽ code này đê các bạn tham khảo các vấn đề tương tự. Tuy nhiên các bạn nên tự làm lại, đừng nên copy. Nếu gặp vấn đề gì khó khăn, hoặc thắc mắc gì, các bạn có thể đặt câu hỏi ở cuối bài. Mình sẽ giải đáp.
Cảm ơn bạn đã chia sẻ, bạn cho mình hỏi printf(“%5d”,a[i][j]); thì %5 có nghĩa là gì vậy?