30/09/2018, 16:48
[Hỏi] Chuyển một số dòng lệnh trong hàm main sang hàm con
#include <stdio.h>
#include <stdlib.h>
void nhap_hang_cot(int *hang, int *cot, char ten){
printf("Nhap so hang ma tran %c: ", ten); scanf("%d", hang);
printf("Nhap so cot ma tran %c: ", ten); scanf("%d", cot);
}
void nhap_du_lieu(int (*a)[50], int hang, int cot, char ten){
int i, j, x;
printf("Nhap du lieu ma tran %c:
", ten);
for(i=0; i<hang; i++)
for(j=0; j<cot; j++){
printf("Nhap %c[%d][%d]: ", ten, i, j);
scanf("%d", &x);
a[i][j] = x;
}
}
void in(int (*a)[50], int hang, int cot, char ten){
int i, j;
printf("Ma tran %c:
", ten);
for(i=0; i<hang; i++){
for(j=0; j<cot; j++)
printf("%3d", a[i][j]);
printf("
");
}
}
void tinh(int (*a)[50], int (*b)[50], int (*c)[50], int hang, int cot){
int i, j, k;
for(i=0; i<hang; i++)
for(j=0; j<cot; j++){
c[i][j] = 0;
for(k=0; k<cot; ++k)
c[i][j] += a[i][k]*b[k][j];
}
}
int main()
{
int a[50][50], b[50][50], c[50][50], hang_a, cot_a, hang_b, cot_b;
nhap_hang_cot(&hang_a, &cot_a, 'A');
nhap_hang_cot(&hang_b, &cot_b, 'B');
if(cot_a != hang_b){
printf("
Ma tran khong hop le!");
return 0;
}
nhap_du_lieu(a, hang_a, cot_a, 'A');
nhap_du_lieu(b, hang_b, cot_b, 'B');
in(a, hang_a, cot_a, 'A');
in(b, hang_b, cot_b, 'B');
tinh(a, b, c, hang_a, cot_b);
in(c, hang_a, cot_b, 'C');
getch();
return 0;
}
Mọi người cho e ý tưởng học giúp e chuyển dòng lệnh đó sang hàm con được ko ạ, e nghĩ mà chưa ra :(. Sao cho nếu nhập sai thì n sẽ thoát chương trình! Hoặc nếu n quay lại bước nhap_hang_cot thì càng tốt a.!
if(cot_a != hang_b){
printf("
Ma tran khong hop le!");
return 0;
}
Bài liên quan
Anh thấy dòng lên này ổn mà, việc gì phải đổi thành hàm?
E nghĩ nếu chuyển hết thành hàm con thì chương trình main nhìn n đẹp Như vậy có nên k a
Không hẳn, chỉ khi nào chuyển thành hàm nó trở nên rõ hơn thì mới nên chuyển thành hàm. Anh ví dụ nhé:
Anh có 3 dòng lệnh như sau, và có một dòng comment ở trên đầu.
Thì anh nên tạo thành một hàm như sau:
Còn trường hợp của em thì đã khá rõ ràng rồi.