Announcement

Collapse
No announcement yet.

[c]linux-bị lỗi chương trình con

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [c]linux-bị lỗi chương trình con

    Em mới chuyển qua lập trình c trên linux, khi viết chương trình này trên windows thì nó không bị lỗi
    Sang linux nó báo lỗi

    nhan.c: Trong hàm « ktsonguyento »:
    nhan.c:11:9: lỗi: lvalue required as left operand of assignment
    nhan.c: Trong hàm « main »:
    nhan.c:21:17: cảnh báo : comparison between pointer and integer [enabled by default]
    Mấy anh chị cho em biết cách sữa lỗi đc ko ạ!
    đây là code
    em đang xài gcc
    Code:
    #include<stdio.h>
    int ktsonguyento(int a)
    {
    int i=0;
    if(a==2)
    	return 1;
    if(a<2)
    	return 0;
    for(i==2;i<a;i++)
    	{
    		if(a%i==0)
    			return 0;
    	}
    return 1;
    }
    int main()
    {
    int a;
    printf("\nhay nhap vao so a\n");
    scanf("%d",&a);
    if(ktsonguyento==1)
    	printf("\nso da nhap la so nguyen to\n");
    if(ktsonguyento==0)
    	printf("\nso da nhap ko la so nguyen to\n");
    return 0;
    }
    cảm ơn anh chị nhiều!!

  • #2
    Originally posted by ./a.out View Post
    Em mới chuyển qua lập trình c trên linux, khi viết chương trình này trên windows thì nó không bị lỗi
    Sang linux nó báo lỗi

    nhan.c: Trong hàm « ktsonguyento »:
    nhan.c:11:9: lỗi: lvalue required as left operand of assignment
    nhan.c: Trong hàm « main »:
    nhan.c:21:17: cảnh báo : comparison between pointer and integer [enabled by default]
    Mấy anh chị cho em biết cách sữa lỗi đc ko ạ!
    đây là code
    em đang xài gcc
    Code:
    #include<stdio.h>
    int ktsonguyento(int a)
    {
    int i=0;
    if(a==2)
    	return 1;
    if(a<2)
    	return 0;
    for(i==2;i<a;i++)
    	{
    		if(a%i==0)
    			return 0;
    	}
    return 1;
    }
    int main()
    {
    int a;
    printf("\nhay nhap vao so a\n");
    scanf("%d",&a);
    if(ktsonguyento==1)
    	printf("\nso da nhap la so nguyen to\n");
    if(ktsonguyento==0)
    	printf("\nso da nhap ko la so nguyen to\n");
    return 0;
    }
    cảm ơn anh chị nhiều!!
    1. Em code xấu quá, em nên về chọn một coding standard nào đó rồi làm theo cho quen. Hoặc tối thiểu thì cũng phải canh hàng (indent) code cho ngay ngắn.

    2. Em paste toàn bộ lệnh đã dùng để compile và output lên đây. Tôi compile chương trình bình thường không có lỗi gì ở line 19 cả.

    Comment


    • #3
      Hình như bạn đang bắt đầu làm quen linux với C, nên có nhiều lỗi sai ko đáng có. Mình đã chình lại, bạn thử xem.
      Code:
      #include <stdio.h>
      
      int ktsonguyento(int a)
      {
      	int i;
      	if(a==2)
      		return 1;
      	if(a<2)
      		return 0;
      	for(i=2;i<a;i++)
      		{
      			if(a%i==0)
      				return 0;
      		}
      	return 1;
      }
      
      int main()
      {
      	int a;
      	printf("\nhay nhap vao so a\n");
      	scanf("%d",&a);
      	if(ktsonguyento(a) == 1)
      		printf("\nso da nhap la so nguyen to\n");
      	else
      		printf("\nso da nhap ko la so nguyen to\n");
      
      	return 0;
      }

      Comment


      • #4
        Originally posted by truonganpn View Post
        1. Em code xấu quá, em nên về chọn một coding standard nào đó rồi làm theo cho quen. Hoặc tối thiểu thì cũng phải canh hàng (indent) code cho ngay ngắn.

        2. Em paste toàn bộ lệnh đã dùng để compile và output lên đây. Tôi compile chương trình bình thường không có lỗi gì ở line 19 cả.
        1.Tại em vội quá nên mới chép toàn bộ vô mà quên căn hàng!
        2.À.Thâỳ ơi em biết sai chỗ nào rồi!!:funny:Tại vô ý quá!cảm ơn thầy nhiều ạ!!udency:

        Comment


        • #5
          Originally posted by 08520087 View Post
          Hình như bạn đang bắt đầu làm quen linux với C, nên có nhiều lỗi sai ko đáng có. Mình đã chình lại, bạn thử xem.
          Code:
          #include <stdio.h>
          
          int ktsonguyento(int a)
          {
          	int i;
          	if(a==2)
          		return 1;
          	if(a<2)
          		return 0;
          	for(i=2;i<a;i++)
          		{
          			if(a%i==0)
          				return 0;
          		}
          	return 1;
          }
          
          int main()
          {
          	int a;
          	printf("\nhay nhap vao so a\n");
          	scanf("%d",&a);
          	if(ktsonguyento(a) == 1)
          		printf("\nso da nhap la so nguyen to\n");
          	else
          		printf("\nso da nhap ko la so nguyen to\n");
          
          	return 0;Thanks 
          }
          À Thanks a nhiều ạ, em mới học lập trình trên linux nên còn lạ lẫm chút!!:adore:

          Comment

          LHQC

          Collapse
          Working...
          X