30/09/2018, 20:21
Nhờ chỉnh sửa code
//dem so luong so duong tren bien cua ma tran so thuc
#include <stdio.h>
#include <conio.h>
void NhapMatran(float Matrix[][100], int &Sodong, int &Socot) {
do{
printf("
Nhap vao so dong: ");
scanf("%d", &Sodong);
if(Sodong< 0)
printf("
So dong phai lon hon khong!");
}while(Sodong< 0);
do{
printf("
Nhap vao so cot: ");
scanf("%d", &Socot);
if(Socot< 0)
printf("
So cot phai lon hon khong!");
}while(Socot< 0);
for(int i= 0; i< Sodong; i++) {
for(int j= 0; j< Socot; j++) {
float temp;
printf("Nhap Matrix[%d][%d]: ", i, j);
scanf("%f", &temp);
Matrix[i][j]= temp;
}
}
}
void XuatMatran(float Matrix[][100], int Sodong, int Socot) {
for(int i= 0; i< Sodong; i++) {
for(int j= 0; j< Socot; j++) {
printf("%8.3f ", Matrix[i][j]);
}//end for j
printf("
");
}//end for i
}
int DemSoDuongTrenBien(float Matrix[][100], int Sodong, int Socot) {
int dem= 0;
for(int j= 0; j< Socot; j++){
if(Matrix[0][j]> 0) {
dem++;
}
if(Matrix[Socot- 1][j]> 0) {
dem++;
}
}
for(int i= 1; i< Sodong- 1; i++){
if(Matrix[i][0]> 0) {
dem++;
}
if(Matrix[i][Sodong- 1]> 0) {
dem++;
}
}
return dem;
}
void main() {
float Matrix[100][100];
int Sodong, Socot;
printf("
Nhap vao ma tran:
");
NhapMatran(Matrix, Sodong, Socot);
printf("
Ma tran moi nhap la:
");
XuatMatran(Matrix, Sodong, Socot);
int dem= DemSoDuongTrenBien(Matrix, Sodong, Socot);
printf("
cac so duong co tren bien la: %d", dem);
getch();
}
ví dụ khi em nhập:
-1 2 -3 -4 5
2 -1 1 -6 -5
8 7 5 1 -4
-4 -4 2 6 4
đáng lẽ là 7 nhưng kết quả chương trình có 5 thôi
em nhập vào ma trận thì nó ra kết quả sai ạ. các cao thủ chỉ cho em cái sai với
Thanks nhiều ạ
Bài liên quan
for(int i= 1; i< Sodong- 1; i++){ // for(i=0; i<sodong; i++) // vòng for này phải bắt đầu từ 1 nếu khong sẽ trùng lặp với giá trị trên dòng if(Matrix[i][0]> 0) { dem++; } if(Matrix[i][Sodong- 1]> 0) { Matrix[i][Socot-1] > 0 dem++; } }
đã sửa được. thanks bnaj nhiều