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 ?

Pham Van Hai viết 20:24 ngày 30/09/2018

Đã 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()

Thành sky viết 20:28 ngày 30/09/2018

@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 ?

Pham Van Hai viết 20:17 ngày 30/09/2018

Code của bạn mình cũng chạy trên Linux (Xubuntu)

Thành sky viết 20:16 ngày 30/09/2018

mình cũng code trên Ubuntu ngon lành nhưng đây là trên Linux

nó báo lỗi thế này

Thành sky viết 20:28 ngày 30/09/2018

Còn nếu k thêm () thì nó lại báo lỗi Invail fuciton main là sao b ?

Pham Van Hai viết 20:25 ngày 30/09/2018

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àm nhapMT 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ành sky viết 20:23 ngày 30/09/2018

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

Pham Van Hai viết 20:26 ngày 30/09/2018

Bạn copy code trên Win lên máy Linux.

Thành sky viết 20:27 ngày 30/09/2018

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ứ

Pham Van Hai viết 20:28 ngày 30/09/2018

Nếu bạn dùng Putty thì copy bình thường nhé, bạn làm như sau:

  1. gõ lệnh vim hello.c
  2. Nhấn i để vào chế độ insert
  3. Copy nội dung chương trình của bạn
  4. Nhấn chuột phải để paste nội dung vào Putty.
  5. Nhấn ESC để về chế độ lệnh
  6. Nhấn :wp đế lưu nội dung vào file và thoát vim
void viết 20:18 ngày 30/09/2018
#include <stdio.h>
#include <stdlib.h>

void nhapMT(int a[][10], int m, int n);
void inMT(int a[][10], int m, int n);
void nhanMT(int a[][10], int b[][10], int c[][10], int m, int n, int p);

int main()
{
    int a[10][10], b[10][10], c[10][10];
    int m1, n1, m2, n2;
    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:\n");
    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:\n");
    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:\n");
        inMT(c, m1, n2);
    }
}

void nhapMT(int a[][10], int m, int n)
{
    int i, j;
    printf("nhap vao ma tran :\n");
    for (i = 1; i <= m; i++)
    for (j = 1; j <= n; j++)
    {
        printf("\na[%d][%d]=", i, j);
        scanf("%d", &a[i][j]);
    }
}

void inMT(int a[][10], int m, int n)
{
    int i, j;
    for (i = 1; i <= m; i++)
    {
        for (j = 1; j <= n; j++)
            printf("%d\t", a[i][j]);
        printf("\n");
        printf("\n");
    }

}

void nhanMT(int a[][10], int b[][10], int c[][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];
    }
}

Thành sky viết 20:19 ngày 30/09/2018

Đây là b code lại hay cop code của mình vậy ?

Thành sky viết 20:24 ngày 30/09/2018

cảm ơn b nhé

Thành sky viết 20:15 ngày 30/09/2018

@Pham_Van_Hai DÙng lệnh vim , k đc b ơi

Pham Van Hai viết 20:26 ngày 30/09/2018

thế bạn dùng lệnh vi thử xem

Thành sky viết 20:26 ngày 30/09/2018

Bâ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 ?

Pham Van Hai viết 20:21 ngày 30/09/2018

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ấn i (insert) thì bạn mới gõ text được, sau khi gõ text xong bạn nhấn ESC nó sẽ ra chế độ dòng lệnh khi này bạn gõ :wq để thoát vi (w: write, q: quit).

Thành sky viết 20:17 ngày 30/09/2018

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

void viết 20:26 ngày 30/09/2018

code tren co chay hay khong?

Bài liên quan
0