Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Sai ở đâu

  1. #1
    Ngày gia nhập
    10 2007
    Bài viết
    24

    Wink Sai ở đâu

    BT này em tham khảo dc nhưng lại test không ra ai bít lỗi ở đâu chỉ mình với
    Đề:Tạo 1 tập tin chứa 10000 số nguyên ngẫu nhiên.Sắp xếp chúng theo thứ tự tăng dần
    Code:
    #include "iostream.h"
    #include "conio.h"
    #include "stdlib.h"
    #define max 10000
    void main()
    {
    	FILE *f;
    	int i,j,a[max],m,d=0;
    	randomize();
    	f=fopen("SFILE.DAT","wt");
    	for(i=0;i<max;i++)
    	{
    	m=random(10000)
    	fprint(f,"%d",m);
    	d++;
    	if(d%10==0)
    	frintf(f,"/n");
    }
    	fclose(f);
    	f=fopen("SLIFE.DAT","r");
    	for(i=0;i<max;i++)
    	fscanf(f,"%d",&a[i]);
    	fclose(f);
    	for(i=0;i<max-1;i++)
    	  for(j=i+1;j<max;j++)
    	  if(a[j]<a[i])
    	  { 
                m=a[i];
    	    a[i]=a[j];
    	    a[j]=m;
               }
    	    printf("endl")
    	    f=fopen("SLIFE.DAT","rt");
    	    for(i=0;i<max;i++)
    	  {
    	    fprint(f,"%d",a[i]);
    	    printf("%d",a[i]);
    	  }
    	    fclose(f);
    	  }
    	    getch();
    }

  2. #2
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Code:
    #include "iostream.h"
    #include "conio.h"
    #include "stdlib.h"
    #include "stdio.h"
    #define max 10000
    void main()
    {
    	FILE *f;
    	int i,j,a[max],m,d=0;
    	randomize();
    	f=fopen("SFILE.DAT","wt");
    	for(i=0;i<max;i++)
    	{
    	m=random(10000);
    	fprintf(f,"%d ",m);
    	d++;
    	if(d%10==0)
    	fprintf(f,"/n");
    }
    	fclose(f);
    	f=fopen("SLIFE.DAT","r");
    	for(i=0;i<max;i++)
    	fscanf(f,"%d",&a[i]);
    	fclose(f);
    	for(i=0;i<max-1;i++)
    	  for(j=i+1;j<max;j++)
    	  if(a[j]<a[i])
    	  { 
                m=a[i];
    	    a[i]=a[j];
    	    a[j]=m;
               }
    	    printf("endl")
    	    f=fopen("SLIFE.DAT","rt");
    	    for(i=0;i<max;i++)
    	  {
    	    fprint(f,"%d",a[i]);
    	    printf("%d",a[i]);
    	  }
    	    fclose(f);
    	  }
    	    getch();
    }
    Bạn nên xem kỹ code nha . Sai grammar hơi bị nhiều đó . ^^
    Hãy chú ý chỗ in xanh dương . Đó chính là mấu chốt của bài toán . Tại sao lại phải in vào tệp một số nguyên kèm theo một khoảng trắng ? Đó là do bên dưới bạn đã dùng hàm fscanf để đọc dãy số . Các số cần được phân cách nhau bởi khoảng trắng thì fscanf mới đọc hiểu được .
    Đã được chỉnh sửa lần cuối bởi sieuphuong : 16-02-2008 lúc 10:17 PM.

  3. #3
    Ngày gia nhập
    05 2007
    Nơi ở
    UNS
    Bài viết
    9

    Code:
    #include "iostream.h"
    #include "stdio.h"   // printf,scanf...Phải xài cái này mới đúng
     #include "conio.h"
    #include "stdlib.h"
    #define max 10000
    void main()
    {
        FILE *f;
        int i,j,a[max],m,d=0;
        randomize(); // Hàm này tự định nghĩa hả
        f=fopen("SFILE.DAT","wt"); // file này ở đâu ra, phải chăng nó là file mới ghi vào
        for(i=0;i<max;i++)
        {
        m=random(10000) // thiếu ;
        fprint(f,"%d",m); // thiếu khoảng trắng đúng như sieuphuong nói
        d++;
        if(d%10==0)
        frintf(f,"/n"); // Hàm fprintf hay là printf
    }
        fclose(f);
        f=fopen("SLIFE.DAT","r"); // file này ở đâu ra
        for(i=0;i<max;i++)
        fscanf(f,"%d",&a[i]);
        fclose(f);
        for(i=0;i<max-1;i++)
          for(j=i+1;j<max;j++)
          if(a[j]<a[i])
          { 
                m=a[i];
            a[i]=a[j];
            a[j]=m;
               }
            printf("endl")   // Thiếu ;
            f=fopen("SLIFE.DAT","rt");
            for(i=0;i<max;i++)
          {
            fprint(f,"%d",a[i]); // hàm fprintf
            printf("%d",a[i]);
          }
            fclose(f);
          } // Dư
            getch();
    }
    Hiện tại tui vẫn chưa check hết lỗi, nhưng nói chung là khá nhiều. ngoài những lỗi mà sieuphuong nói, còn 1 vài lỗi khác

    --- Hình như bạn chỉ xài C thì ko cần include "iostream.h"

    --- Hàm randomize() với hàm random() lạ quá tui search hoài ko ra hàm này, ko biết có phải là bạn copy vào thiếu hàm này ko, nếu bạn muốn random 1 số thì nên dùng hàm srand(), ráng search trong MSDN cách sử dụng

    Code ví dụ Random 1 số

    Code:
    // crt_rand.c
    // This program seeds the random-number generator
    // with the time, then displays 10 random integers.
    //
    
    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
    
    int main( void )
    {
       int i;
       
       // Seed the random-number generator with current time so that
       // the numbers will be different every time we run.
       //
       srand( (unsigned)time( NULL ) );
    
       // Display 10 numbers.
       for( i = 0;   i < 10;i++ )
          printf( "  %6d\n", rand() );
    
      printf("\n");
    
      // Usually, you will want to generate a number in a specific range,
      // such as 0 to 100, like this:
      {
         int RANGE_MIN = 0;
         int RANGE_MAX = 100;
         for (i = 0;    i < 10; i++ )
          {
             int rand100 = (((double) rand() / 
                             (double) RAND_MAX) * RANGE_MAX + RANGE_MIN);
             printf( "  %6d\n", rand100);
          }
      }
    }
    --- 2 file SFILE.DAT với SLIFE.DAT là khác nhau hả, vậy thì bạn phải cung cấp file SLIFE.DAT ko thì nó bảo lỗi file ko tồn tại

    --- fprintf là hàm ghi lên file chứ ko phải là fprint hay gì đó

    --- Nói chung bạn có thể nêu rõ ý tưởng thuật toán sẽ làm gì ko, chứ như vậy thì cũng đoán đc 1 cách lờ mờ à

  4. #4
    Ngày gia nhập
    10 2007
    Bài viết
    24

    thanks các đại ca bài này em sửa lổi dc rồi nhừng lúc chạy CT thì lại báo lỗi này (em học C++)
    Code:
    N caused a Stack Fault in module N.EXE at 0001:0177
    Đã được chỉnh sửa lần cuối bởi thedang : 17-02-2008 lúc 12:22 PM.

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    thanks các đại ca bài này em sửa lổi dc rồi nhừng lúc chạy CT thì lại báo lỗi này (em học C++)
    Cái này 100% C not C++.

  6. #6
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Mặc định Sai ở đâu

    Hàm randomize() với hàm random() lạ quá
    Cái này bạn chỉ việc Shift + F1 trong TC hay BC là ra thôi mà . Hàm chuẩn trong thư viện ctype.h đó .

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn