30/09/2018, 18:13
Lỗi Invaild fuction declaration và cannot convert ‘const char*’ to ‘int
Đây là đoạn code của mình !
#include <stdio.h>
#include <stdlib.h>
void nhapMT(int a[10][10], int m, int n)
{
int i,j;
printf ("nhap vao ma tran :
");
for (i=1; i<=m; i++)
for (j=1; j<=n; j++)
{
printf("
a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
}
}
void inMT(int a[10][10], int m, int n)
{
int i,j;
for (i=1; i<=m; i++)
{
for (j=1; j<=n; j++)
printf ("%d ",a[i][j]);
printf ("
");
printf ("
");
}
}
void nhanMT(int a[10][10], int b[10][10], int c[10][10], int m,int n, int p)
{
int i,j,k;
for (i=1; i<=m; i++)
for (j=1; j<=n; j++)
{
c[i][j]=0;
for (k=1; k<=p; k++)
c[i][j]+= a[i][k]*b[k][j];
}
}
int main
{
int a[10][10],b[10][10],c[10][10];
int m1,n1,m2,n2,m,n,p;
printf ("nhap vao so hang ma tran A: ");
scanf ("%d",&m1);
printf ("nhap vao so cot mat tran A: ");
scanf ("%d",&n1);
nhapMT(a,m1,n1);
printf("A:
");
inMT(a,m1,n1);
printf ("nhap vao so hang ma tran B: ");
scanf ("%d",&m2);
printf ("nhap vao so cot ma tran B: ");
scanf ("%d",&n2);
nhapMT(b,m2,n2);
printf("B:
");
inMT(b,m2,n2);
if (n1!=m2)
printf ("khong nhan duoc");
else
{
nhanMT(a,b,c,m1,n2,n1);
printf ("tich cua 2 ma tran la:
");
inMT(c,m1,n2);
}
}
=>Mình muốn hỏi : Ở dòng Int main nếu k có () thì nó báo lỗi Invaild fuction declaration. Còn nếu có () thì nó báo lỗi cannot convert ‘const char*’ to ‘int ()[10]’ for argument ‘1’ to ‘void nhapMT(int ()[10], int, int)’
Như này là sao ?
Bài liên quan
Đã là hàm thì phải có dấu () nhé, đó là cú pháp.
Code của bạn mình biên dịch không có lỗi gì cả khi thêm () vào hàm main:
int main()
@Pham_Van_Hai Mình cũng hiểu thế mà b.Nhưng mà khi chạy trên win thì Code ngon lành.
Nhưng nếu code trên Linuxx. B nhớ là Linux nhé b ?
Code của bạn mình cũng chạy trên Linux (Xubuntu)
mình cũng code trên Ubuntu ngon lành nhưng đây là trên Linux
Còn nếu k thêm () thì nó lại báo lỗi Invail fuciton main là sao b ?
Linux là chỉ các hệ điều hành dùng Linux Kernel: Xubuntu là một bản phân phối dùng Linux Kernel nên nó vẫn là Linux nhé.
Đây là lỗi sử dụng hàm
nhapMT
trong hàm main của bạn: bạn khai bao hàm có tham sốint (*)[10]
nhưng khi bạn gọi hàmnhapMT
bạn lại truyền vào tham số có kiểu ```const char*````. Bạn check lại code trong CentOS đi nhé.Thế fixx thế nào hả b ?
Mình chỉ đc code trên máy chủ của thầy qua PuTTy thôi b.
linux này mình k fix đc chứ trên win thì đơn giản rồi
Bạn copy code trên Win lên máy Linux.
Như nhau cả b à :(. mà cái linux này cũng k cop vs paste đc
Thầy chơi khó học sinh thế ms đau chứ
Nếu bạn dùng Putty thì copy bình thường nhé, bạn làm như sau:
vim hello.c
i
để vào chế độ insertESC
để về chế độ lệnh:wp
đế lưu nội dung vào file và thoátvim
Đây là b code lại hay cop code của mình vậy ?
cảm ơn b nhé
@Pham_Van_Hai DÙng lệnh vim , k đc b ơi
thế bạn dùng lệnh
vi
thử xemBây h bấm vi < tên tệp> rồi nó vào hẳn luôn b à. k cần ấn i nữa mà ấn i cũng k đc mà ấn chuột phải cũng k đc mà ấn ESC cũng k thoát đc.bây h phải làm sao hả b ?
Khi bạn dùng lệnh
vi file
thì nó sẽ mở file và ở chế độ lệnh bạn sẽ không gõ text trong này được, bạn phải nhấni
(insert) thì bạn mới gõ text được, sau khi gõ text xong bạn nhấnESC
nó sẽ ra chế độ dòng lệnh khi này bạn gõ:wq
để thoátvi
(w: write, q: quit).k đc b ạ. mình ấn Crt+Z thì nó hiện ra Stopped Vi …
Chắc đc rồi b à hết hồn
code tren co chay hay khong?