Trang 1 trên tổng số 4 123... Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 35 kết quả

Đề tài: Lập trình C | Những chương trình C Cơ bản

  1. #1
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà Nội
    Bài viết
    138

    Mặc định Lập trình C | Những chương trình C Cơ bản

    Chương trình đếm số ký tự trong một chuỗi ASCII
    PHP Code:
    #include <stdio.h>
    #include <ctype.h>
    #include<conio.h>
    void main()
    {
      
    char chuoi[80];
      
    int i 0count 0;

      
    printf("\nNhap vao mot chuoi bat ky : ");
      
    gets(chuoi);

      while (
    chuoi[i] != 0)
      {
        if (
    isalpha(chuoi[i++]))
          
    count++;
      }

      
    printf("So ky tu trong chuoi = %d"count);
      
    getch();

    Chứng minh dạng thức AN CASI
    PHP Code:
    #include <stdio.h>
    #include<conio.h>
    unsigned long vetrai(unsigned long n)
    {
      
    unsigned long tmp=0i;
      for (
    i=1i<=ni++)
        
    tmp += i*i*i*i;
      return 
    tmp;
    }

    unsigned long vephai(unsigned long n)
    {
      
    unsigned long tmp;
      
    tmp = (long)6*n*n*n*n*+ (long)15*n*n*n*+ (long)10*n*n*n;
      
    tmp tmp / (long)30 ;
      return 
    tmp;
    }

    void main()
    {
      
    unsigned long tong1tong2n;

      for (
    n=1n<=50n++)
      {
        
    tong1 vetrai(n);
        
    tong2 vephai(n);
        if (
    tong1 == tong2)
        {
          
    printf("\nSo %d thoa man dang thuc An Casi. "n);
          
    printf("Tong1 = %ld - Tong2 = %ld"tong1tong2);
        }
        else
        {
          
    printf("\nSo %d khong thoa man dang thuc An Casi. "n);
          
    printf("Tong1 = %ld - Tong2 = %ld"tong1tong2);
        }
      }
      
    getch();

    Giải hệ PT bậc nhất
    PHP Code:
    #include <stdio.h>
    #include<conio.h>
    void main()
    {
      
    float ab;

      
    printf("\nGiai phuong trinh bac nhat AX + B = 0");
      
    printf("\nCho biet ba he so A B : ");
      
    scanf("%f%f", &a, &b);

      if (
    a==0)
        if (
    b!=0)
          
    printf("Phuong trinh vo nghiem");
        else
          
    printf("Phuong trinh co nghiem khong xac dinh");
      else
        
    printf("Dap so cua phuong trinh tren = %f", -b/a);
      
    getch();

    Biểu diễn số dưới dạng bit
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    void main()
    {
      
    unsigned int mang[24], i;
      
    int bit[16], kindex;
      
    printf("\nNhap vao 23 gia tri nguyen : ");
      for (
    i=0i<23i++)
        
    scanf("%d",&mang[i]);
      
    printf("       FEDCBA9876543210");
      for (
    i=0i<23i++)
      {
         
    mang[i];
         for (
    index 0index 16index++)
           
    bit[index] = 0;
         
    index 15;
         while (
    k)
         {
           
    bit[index--] = k%2;
           
    /= 2;
         }
         
    printf("\n%5d  ",mang[i]);
         for (
    index=0index<16index++)
           if (
    bit[index] == 1)
             
    printf("*");
           else
             
    printf("-");
      }
      
    getch();

    Đã được chỉnh sửa lần cuối bởi shinichi_haha : 09-12-2006 lúc 12:45 PM.
    Tất cả các câu hỏi của thành viên (không vi phạm luật lệ tham gia) gửi vào box Java, Linux nếu không thành viên nào trả lời hỗ trợ trong vòng 24h, ban quản trị sẽ trực tiếp hỗ trợ. Các bạn giới thiệu và loan tin giúp điều này

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà Nội
    Bài viết
    138

    Còn nữa nè
    Xác định xem năm đó có Can Chi là gì?
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    void main()
    {
      
    unsigned nam;
      
    char can[][5] = {"Giap""At""Binh""Dinh""Mau""Ky",
                       
    "Canh""Tan""Nham""Quy"};
      
    char chi[][5] = {"Ty""Suu""Dan""Meo""Thin""Ty",
                       
    "Ngo""Mao""Than""Dau""Tuat""Hoi"};

      
    printf("\nNhap nam can biet : ");
      
    scanf("%d", &nam);
      
    printf("Nam am lich cua %d la %s %s"namcan[(nam+6)%10], chi[(nam+8)%12]);
      
    getch();

    Hello!
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    void main()
    {
       
    char name[80];

       
    printf("\nPlease enter your name : ");
       
    gets(name);

       
    printf("Hello! %s\n"name);
       
    getch();

    Xác định một ngày là thứ mấy
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    struct date
    {
       
    int     month;
       
    int    day;
       
    int    year;
    date_1;

    long int funct1 (int y,int m)
    {
      
    long int result;
         if ( 
    <= )
           
    -= 1;
         
    result y;
         return (
    result);
    }

    long int funct2 (int m)
        {
         
    long int result;
         if ( 
    <= )
           
    result 13;
         else
           
    result 1;
           return(
    result);
        }

    long int day_count (int mint dint y)
        {
         
    long int number;
         
    number 1461 *  funct1(y,m) / 153 funct2(m) / d;

         return (
    number);
        }

    void main ()
    {
        
    long int number_of_days1;
        
    int day_of_week;

        
    printf ("Nhap vao mot ngay (dd mm yyyy), vd  12 03 1999  \n");
        
    scanf ("%d %d %d", &date_1.day, &date_1.month, &date_1.year);
        
    number_of_days1 day_count (date_1.monthdate_1.daydate_1.year);
        
    printf ("\nNgay la : " );

        
    day_of_week = (number_of_days1 621049) % 7;
        switch (
    day_of_week)
          {
            case 
    :
                
    printf ("Chu Nhat,");
                break;
            case 
    :
                
    printf ("Thu Hai,");
                break;
            case 
    :
                
    printf ("Thu Ba,");
                break;
            case 
    :
                
    printf ("Thu Tu,");
                break;
            case 
    :
                
    printf ("Thu Nam,");
                break;
            case 
    :
                
    printf ("Thu Sau,");
                break;
            case 
    :
                
    printf ("Thu Bay,");
                break;
          }
      
    getch();

    Xác định xem trong một dãy có các dãy tăng nào có tổng lơn nhất
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    void main()
    {
      
    int a[10], imaxstartmaxendmaxtotaltmpstarttmpendtmptotal;

      
    printf("\nNhap vao 10 phan tu nguyen cua day :");
      for (
    i=0i<10i++)
        
    scanf("%d", &a[i]);
      
    printf("Day da cho :\n");
      for (
    i=0i<10i++)
        
    printf("%6d"a[i]);

      
    maxstart maxend tmpstart tmpend 0;
      
    maxtotal tmptotal a[0];
      for (
    i=1i10i++)
      {
         if (
    a[i] < a[tmpend])
         {
           if (
    maxtotal tmptotal)
           {
             
    maxstart tmpstart;
             
    maxend tmpend;
             
    maxtotal tmptotal;
           }
           
    tmpstart tmpend i;
           
    tmptotal a[i];
         }
         else
         {
           
    tmptotal += a[i];
           
    tmpend++;
         }
      }
      if (
    maxtotal tmptotal)
      {
         
    maxstart tmpstart;
         
    maxend tmpend;
      }
      
    printf("\nDay tang co tong nhieu nhat la : \n");
      for (
    i=maxstarti<=maxendi++)
        
    printf("%6d"a[i]);
      
    getch();

    Đảo chuỗi
    PHP Code:
    char *dnchuoi(char *s)
    {
      
    char *tmpi;

      
    0;
      
    tmp = (char *)malloc(strlen(s)+1);
      while (
    i<strlen(s))
        *(
    tmp+i) = *(strlen(s) - i++ - 1);
      *(
    tmp+i) = 0;
      return 
    tmp;
    }

    void main()
    {
      
    char hello[] = "Hello World";
      
    char *s;

      
    printf("\nChuoi ban dau = %s"hello);
      
    dnchuoi(hello);
      
    printf("\nChuoi dao nguoc = %s"s);
      
    getch();

    Còn nhiều nữa, nhưng mình bây giờ có việc phải đi rồi. Tối gửi tiếp nhé
    Tất cả các câu hỏi của thành viên (không vi phạm luật lệ tham gia) gửi vào box Java, Linux nếu không thành viên nào trả lời hỗ trợ trong vòng 24h, ban quản trị sẽ trực tiếp hỗ trợ. Các bạn giới thiệu và loan tin giúp điều này

  3. #3
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà Nội
    Bài viết
    138

    Tiếp theo:

    Chương trình xem tập tin
    PHP Code:
    #include <stdio.h>
    #include <conio.h>

    void main()
    {
      
    FILE *fp;
      
    char filename[50], s[255], *hang[1000], c;
      
    int nline 0line 0i;

      
    printf("\nNhap ten tap tin muon xem : ");
      
    gets(filename);
      if ((
    fp fopen(filename,"r")) == NULL)
        
    printf("\nKhong the mo tap tin %s"filename);
      else
      {
        while (!
    feof(fp))
        {
          
    fgets(s255fp);
          
    hang[nline] = (char *)malloc(strlen(s));
          
    strcpy(hang[nline], s+1);
          
    nline++;
        }
        do {
          
    clrscr();
          
    line;
          while (
    i<line+26 && i<nline)
            
    printf("%s"hang[i++]);
          
    getch();
          if (
    == 0)
          {
            
    getch();
            switch(
    c)
            {
              case 
    72 : if (line 0)
                          
    line--;
                        break;
              case 
    80 : if (line+25 nline)
                          
    line++;
                        break;
            }
          }
        } while (
    != 27);
        
    fclose(fp);
      }

    Giải bài toán trâu ăn cỏ
    PHP Code:
    /* Giai bai toan co :
       Tram trau tram co
       Trau dung an nam
       Trau nam an ba
       Trau gia an mot
    */

    #include <stdio.h>
    #include <conio.h>

    void main()
    {
      
    int tdungtnamtgiaphuongan=0;

      for (
    tdung 1tdung <= 98tdung ++)
        for (
    tnam 1tnam 99 tdungtnam ++)
          for (
    tgia 1tgia 99 - (tdung tnam); tgia++)
            if ((
    tdung*tnam*tgia) == 100)
            {
               
    printf("\nTrau dung : %5d ; Trau nam : %5d ; Trau gia : %5d",
                      
    tdungtnamtgia);
               
    phuongan++;
            }
      
    printf("\nTong cong co %d phuong an."phuongan);
      
    getch();

    Loại bỏ khoảng trống thừa trong chuỗi
    PHP Code:
    #include <stdio.h>
    #include <string.h>
    #include <conio.h>
    #pragma warn -pia

    char *trim(char *chuoi)
    {
       
    char *p;
       while (
    strstr(chuoi"  "))
         
    memmove(pp+1strlen(chuoi) - (chuoi));
       if (
    chuoi[0] == ' ')
         
    memmove(chuoichuoi+1strlen(chuoi) - 1);
       if (
    chuoi[strlen(chuoi)-1] == ' ')
         
    chuoi[strlen(chuoi)-1] = 0;
       return 
    chuoi;
    }

    void main()
    {
       
    char chuoi[125];

       
    printf("\nNhap chuoi mau : ");
       
    textattr(0x1e);
       
    gets(chuoi);

       
    trim(chuoi);
       
    printf("\nChuoi sau khi da trim : ");
       
    textattr(0x1e);
       
    cputs(chuoi);
       
    getch();

    Tìm tất cả các ước của một số N
    PHP Code:
    #include <stdio.h>
    #include <conio.h>

    void main()
    {
      
    int ni;

      
    printf("Cho gia tri N = ");
      
    scanf("%d", &n);

      
    printf("Cac uoc so cua %d la :\n"n);
      for (
    i=1i<ni++)
        if ((
    i) == 0)
          
    printf("%5d"i);
      
    getch();

    Bội số chung và ước số chung
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    unsigned USCLN (unsigned nunsigned m)
    {
      while (
    != && != 0)
        if (
    n>m)
          
    -= m;
        else
          
    -= n;
      if (
    == 0)
        return 
    m;
      else
        return 
    n;
    }

    unsigned BSCNN (unsigned nunsigned m)
    {
      return 
    USCLN(nm);
    }

    void main()
    {
      
    unsigned nm;

      
    printf("\nNhap hai vao so nguyen duong : ");
      
    scanf("%u%u", &n, &m);
      
    printf("\nUSCLN cua %u va %u = %u"nmUSCLN(n,m));
      
    printf("\nBSCNN cua %u va %u = %u"nmBSCNN(n,m));
      
    getch();

    Trộn 2 dãy giảm thành một dãy tăng
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    #define MAX 10

    void main()
    {
      
    int a[MAX], b[MAX], c[2*MAX], n1n2ii1i2;

      
    printf("\nCho biet so phan tu cua mang thu nhat : ");
      
    scanf("%d", &n1);
      
    printf("Nhap vao cac phan tu (giam dan) cua mang thu nhat : ");
      for (
    i=0i<n1i++)
        
    scanf("%d", &a[i]);
      
    printf("\nCho biet so phan tu cua mang thu hai : ");
      
    scanf("%d", &n2);
      
    printf("Nhap vao cac phan tu (giam dan) cua mang thu hai : ");
      for (
    i=0i<n2i++)
        
    scanf("%d", &b[i]);
      
    i1 n1-1;
      
    i2 n2-1;
      for (
    i=0i<n1 n2i++)
      {
        if (
    i1 || i2 0)
          break;
        if (
    a[i1] < b[i2])
          {
            
    c[i] = a[i1];
            
    i1--;
          }
          else
          {
            
    c[i] = b[i2];
            
    i2--;
          }
      }
      if (
    i1 >= 0)
        while (
    i1 >= 0)
          
    c[i++] = a[i1--];
      if (
    i2 >= 0)
        while (
    i2 >= 0)
          
    c[i++] = b[i2--];
      
    printf("\nCac phan tu cua mang tron : ");
      for (
    i=0i<n1+n2i++)
        
    printf("%d "c[i]);
      
    getch();

    Còn nữa, nhưng tạm thế đã bữa sau post tiếp nha. Các bạn có nhu cầu liên tiếng nha
    Tất cả các câu hỏi của thành viên (không vi phạm luật lệ tham gia) gửi vào box Java, Linux nếu không thành viên nào trả lời hỗ trợ trong vòng 24h, ban quản trị sẽ trực tiếp hỗ trợ. Các bạn giới thiệu và loan tin giúp điều này

  4. #4
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà Nội
    Bài viết
    138

    Tính tích 2 ma trận:
    PHP Code:
    #include<conio.h>
    #include<stdio.h>
    #include<alloc.h>
    void main()
    {
    int *a,*b,*c;
    int m,n;
    int i,j;
    clrscr();
    //Nhap so hang so cot
    printf("Nhap vao m:");scanf("%d",&m);
    printf("Nhap vao n:");scanf("%d",&n);
    //Cap phat bo nho
    a=(int*)calloc(m*n,sizeof(int));
    b=(int*)calloc(m*n,sizeof(int));
    c=(int*)calloc(m*n,sizeof(int));
    // Nhap so lieu va tinh toan
    for(i=1;i<=m;i++)
    for(
    j=1;j<=n;j++)
    {
        
    printf("Nhap vao a[%d,%d]=",i,j);scanf("%d",&a[(i-1+j)+((i-1)*(n-1))]);
    }
    for(
    i=1;i<=m;i++)
    for(
    j=1;j<=n;j++)
    {
        
    printf("Nhap vao b[%d,%d]=",i,j);scanf("%d",&b[(i-1+j)+((i-1)*(n-1))]);
        
    c[(i-1+j)+((i-1)*(n-1))]=a[(i-1+j)+((i-1)*(n-1))]+b[(i-1+j)+((i-1)*(n-1))];
    }
    // xuat cac mang a,b,c ra man hinh
    for(i=1;i<=m;i++)
    for(
    j=1;j<=n;j++)
    {
        
    printf("\t%d",a[(i-1+j)+((i-1)*(n-1))]);
        if(
    j==n)printf("\n");
    }
    printf("\n===========\n");
    for(
    i=1;i<=m;i++)
    for(
    j=1;j<=n;j++)
    {
        
    printf("\t%d",b[(i-1+j)+((i-1)*(n-1))]);
        if(
    j==n)printf("\n");
    }
    printf("\n===========\n");
    for(
    i=1;i<=m;i++)
    for(
    j=1;j<=n;j++)
    {
        
    printf("\t%d",c[(i-1+j)+((i-1)*(n-1))]);
        if(
    j==n)printf("\n");
    }
    getch();

    Tất cả các câu hỏi của thành viên (không vi phạm luật lệ tham gia) gửi vào box Java, Linux nếu không thành viên nào trả lời hỗ trợ trong vòng 24h, ban quản trị sẽ trực tiếp hỗ trợ. Các bạn giới thiệu và loan tin giúp điều này

  5. #5
    Ngày gia nhập
    08 2006
    Bài viết
    2

    ADMIN có thể cho tôi xin chương trình chuyển 1 số thập phân sang hexa trong C được không

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    Hà Nội
    Bài viết
    146

    Cool re

    Trích dẫn Nguyên bản được gửi bởi thanhnam
    ADMIN có thể cho tôi xin chương trình chuyển 1 số thập phân sang hexa trong C được không
    Ý bạn nói có phải là chuyển một số từ hệ cơ số 10 sang hệ hex phải không?
    Đây là code tổng quát chuyển 1 số hệ cơ số 10 sang 1 hệ cơ số b bất kì.
    Code:
    void Doicoso(int n,int b)
    {
    	int s[10],o,j,i=0,k=0;
    	printf("\nNhap mot so he co so 10(Dec) n=");scanf("%d",&n);
    	printf("\nNhap co so can chuyen sang (b code): b=");scanf("%d",&b);
    	o=n;
    	while(n!=0)
    	   {
    	      k=n%b;n=n/b;
    	      if(0<=k && k<=9) s[i++]= 48+k;
    	      else
    	       s[i++]=(65+k-10);
    
    	   }//end while
    	printf("\n\nKet qua la:%d(dec) chuyen sang %d(code) la:",o,b);
    	for(j=i-1;j>=0;j--)
    	printf("%c",s[j]);
    }//end function

  7. #7
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Ở dưới là đoạn code mà tui thường dùng để đổi một số int sang chuổi hex, được viết thành 1 hàm và đã được optimize. Hàm này chạy rất nhanh, hơn các cách khác như dùng sprintf, std::string....Build và run với VC++ xx.
    Code:
    /**********************************************************************
    * Function:     Num2HexStr
    * Description:  Convert a number to a hex string
    * Parameters:   pBuf: Pointer to buffer to store the result hex string.
    *               The caller must ensure buffer have enough space to store
    *               len of hex characters and a NULL character.
    *               len: number of hex character required. The buffer will be
    *               add 0 to the left to ensure have len hex characters
    *               num: number will be converted
    * Returns:      The pointer pBuf
    **********************************************************************/
    static inline char* Num2HexStr(char *pBuf, uint len, uint num)
    {
        static const char HEXSTR[] = "0123456789ABCDEF";
    
        _ASSERTE(len > 0);
        _ASSERTE(pBuf != NULL);
        _ASSERTE(FALSE == IsBadWritePtr(pBuf, UINT_MAX));
        if ((NULL == pBuf) || (0 == len))
        {
            TRACE("IDB2SIG - %s(%d) : Invalid function input arguments.\n",
                      __FILE__, __LINE__);
            return pBuf;
        }
    
        char *p = pBuf + len;
        *p-- = '\0';
        while (p >= pBuf)
        {
            int digit = num & 0x0F;
            num >>= 4;
            *p-- = HEXSTR[digit];
        }
    
        return pBuf;
    }
    Điểm mạnh của hàm này là tốc độ và padding 0 vào đầu chuỗi trả về.
    VD: NumToHexStr(pBuf, 4, 3) => 0003

  8. #8
    Ngày gia nhập
    09 2006
    Bài viết
    12

    Mặc định số ngẫu nhiên

    vô mạng thấy phép toán này hay quá.

    3 cách tạo số ngẫu nhiên. hix bài này mà cho đề thi hỏi kết quả xuất ra màn hình là gì chắc nhiều anh chết lắm đây.


    int rand1(int lim)
    {
    static long a = 100001;

    a = (a * 125) % 2796203;
    return ((a % lim) + 1);
    }

    //
    // returns random integer from 1 to lim (Gerhard's generator)
    //
    int rand2(int lim)
    {
    static long a = 1; // could be made the seed value

    a = (a * 32719 + 3) % 32749;
    return ((a % lim) + 1);
    }

    //
    // returns random integer from 1 to lim (Bill's generator)
    //
    int rand3(int lim)
    {
    static long a = 3;

    a = (((a * 214013L + 2531011L) >> 16) & 32767);

    return ((a % lim) + 1);
    }

  9. #9
    No Avatar
    thichnhungkem Khách

    cho mình hỏi luôn là có bao nhiêu thư viện hàm trong C
    mình mỗi lần khai báo hết cho nó nhớ

  10. #10
    Ngày gia nhập
    10 2006
    Nơi ở
    Hà Nội
    Bài viết
    146

    Thực ra thư viên hàm trong C rất nhiều, nó chứa ở tệp include dưới dạng các file
    tiêu đề *.H . Mỗi thư viện chỉ chứa các hàm khác nhau dùng cho các trường hợp khác nhau.
    Nhưng thông thường các thư viện sau luôn khai báo:
    #include<stdio.h> //thư viện chứa các hàm chuẩn vào ra
    #include<conio.h> //dùng hàm getch()
    #include<math.h>// chỉ dùng trong trường hợp dùng các hàm toán học
    #include<string.h>// các hàm xử lí string
    #include<ctype.h>// dùng các hàm chuyển đổi chuỗi từ thường-> hoa và ngược lại
    #include<dos.h>// dùng hàm exit();
    #include<stdlib.h>// thư viện chuẩn
    #include<graphics.h>// hàm dùng trong chế độ đồ họa
    ....
    mình nhớ không nhiều

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