Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

    Help Mấy bài C Này Dùm

      Tony Stark

      Giới tính : Nam

      Tuổi : 31

      Đến từ : Cần thơ

      Ngày Tham gia : 10/01/2012

      Tổng số bài gửi : 750

      #1

       Thu Feb 02, 2012 3:29 pm

      Viết hàm cắt bỏ khoảng trắng thừa ở giữa, hai đầu.

      Viết chương trình nhập vào 3 chữ số (305, 6, 28). Cho biết dòng chữ mô tả giá trị con số đó. Ví dụ 305 -> ba trăm lẻ năm.

      Viết chương trình nhập vào một chuỗi sau đó in ra màn hình mỗi dòng là một từ. Ví dụ chuỗi "Lap trinh C". Kết quả in ra
      Lap
      trinh
      C

      Giả sử số phòng trong một khách sạn được cho bởi hằng số NUM_ROOM. Viết:
      a. Một khai báo dãy thích hợp để theo dõi phòng nào còn trống.
      b. Một hàm tìm phòng nào còn trống.
      c. Viết chương trình đơn giản để quản lý phòng khách sạn theo dạng một trình đơn chọn công việc gồm có 4 mục như sau:
      - Tìm phòng trống.
      - Trả phòng.
      - Liệt kê những phòng còn trống.
      - Liệt kê những phòng đã thuê.
      - Kết thúc.

      Viết chương trình mô tả văn bản của một bức điện tín. Nhập liệu bao gồm 1 hay nhiều dòng chứa một số từ, mỗi từ cách nhau khoảng trắng. In ra hóa đơn tính tiền với mỗi từ giá 100 đồng, phí trả thêm 50 đồng cho từ dài quá 8 kí tự. Hóa đơn có dạng sau:
      So tu : 10
      So tu co kich thuoc binh thuong : 8 x 100 = 800 dong
      So tu co kích thuoc > 8 ki tu : 2 x 150 = 300 dong
      Tong cong : 1100 dong

      Viết chương thực hiện các yêu cầu sau:
      - Nhập vào 1 chuỗi bất kỳ, ví dụ : "Nguyen Minh Long
      - Muốn xóa từ vị trí nào, ví dụ : 8
      - Muốn xóa bao nhieu kí tự, ví dụ : 5
      Kết quả in ra man hinh:

      - Chuoi nguon la : Nguyen Minh Long
      - Chuoi sau khi xoa : Nguyen Long
      hướng dẫn em thuật toán cũng được
      thank
      Admin
      Admin

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #2

       Sat Feb 04, 2012 10:25 am

      chuyen 305 thanh ba tram le nam ne e!đơn giản mà khá hay đó chứ kaka
      Code:

      #include <stdio.h>
      #include <conio.h>
      #include <string.h>
      char s[50] = "";

      char *bachuso(unsigned int n)
      {
        char kyso[10][5]= {"", "mot", "hai", "ba", "bon", "nam", "sau",
                          "bay", "tam", "chin"};
        int donvi, chuc, tram;

        s[0] = 0;
        donvi = n % 10;
        n /= 10;
        chuc = n % 10;
        tram = n / 10;
        if (tram > 0)
        {
          strcat(s,kyso[tram]);
          strcat(s, " tram ");
        }
        if (chuc > 0)
        {
          if (chuc == 1)
            strcat(s, "muoi ");
          else
          {
            strcat(s, kyso[chuc]);
            strcat(s, " muoi ");
          }
        }
        if (donvi > 0)
        {
          if (chuc == 0 && tram != 0)
            strcat(s, "le ");
          if (donvi == 1)
            strcat(s, "mot");
          else if (donvi == 5 && (chuc != 0 || tram != 0))
            strcat(s, "lam");
          else if (donvi == 5 && (chuc = 0 || tram != 0))
            strcat(s, "nam");
          else
            strcat(s, kyso[donvi]);
        }
        return s;
      }

      void main()
      {
        unsigned long n;
        unsigned ngan, trieu, ty, donvi;
        char chuoi[200];

        printf("\nNhap mot so khong dau : ");
        scanf("%ld", &n);
        printf("So %ld doc bang chu la :\n", n);
        if (n == 0)
          printf("khong");
        else
        {
          donvi = n % 1000;
          n /= 1000;
          ngan = n % 1000;
          n /= 1000;
          trieu = n % 1000;
          ty = n / 1000;
          chuoi[0] = 0;
          if (ty > 0)
            printf("%s ty ", bachuso(ty));
          if (trieu > 0)
            printf("%s trieu ", bachuso(trieu));
          if (ngan > 0)
            printf("%s ngan ", bachuso(ngan));
          if (donvi > 0)
            printf("%s", bachuso(donvi));
        }

        getch();
      }


      Viết chương trình nhập vào một chuỗi sau đó in ra màn hình mỗi dòng là một từ. Ví dụ chuỗi "Lap trinh C". Kết quả in ra
      Lap
      trinh
      C
      cai này khá dễ hehe
      thêm "\n" khi xuất là dc

      Code:
      for (int i=0; i<strlen(s); i++)
        if (s[i]==' ' && s[i+1]!=' ') printf("\n");
        else printf("%c",st[i]);
      cat got chuoi

      Code:
      void chuanhoachuoi(char *s){
         int i=0;
         while (s[0]==' ') strcpy(s,&s[1]);
         while(i<strlen(s)-1){
            if(s[i]==' '&&s[i+1]==' ')
            strcpy(&s[i],&s[i+1]);
            else i++;
         }
         while(s[strlen(s)-1]==' ') s[strlen(s)-1]='\0';
      }


      chuyển hoa thành thường
      Code:
      #include<stdio.h>
      #include<conio.h>
      #include<string.h>
      #include<ctype.h>
        void chuyen(char s[])
        {
          int dem;
          dem=strlen(s);
          for(int i=0;i<dem;i++)
              s[i]=tolower(s[i]);
        }


        void xuat(char s[])
        {
          printf("chuoi da nhap la: %s",s);
        }


        void main()
        {
          char s[30];
         
          printf("nhap chuoi: ");
          scanf("%s",s);

          chuyen(s);
          xuat(s);
          getch();
        }

      xem chi tiết : [You must be registered and logged in to see this link.]
      khi nào rãnh giải tiếp hé!sao đưa nhiều bài thế!nhin chóng mặt k3


      Được sửa bởi Admin ngày Sat Feb 04, 2012 12:14 pm; sửa lần 3.
      Admin
      Admin

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #3

       Sat Feb 04, 2012 10:26 am

      //Xoa khoang trang o dau
      Code:

      void delSpaceAtBegin(char *str)
      {
          int k=0;
          while(str[k]==32)
          {
              delChar(str,k);
              k++;
          }
      }
      //Xoa khoang trang o cuoi
      Code:

      void delSpaceAtEnd(char *str)
      {
          int k=strlen(str)-1;
          while (str[k]==32)
          {
              delChar(str,k);
              k=strlen(str)-1;
          }
      }
      Viết chương thực hiện các yêu cầu sau:
      - Nhập vào 1 chuỗi bất kỳ, ví dụ : "Nguyen Minh Long
      - Muốn xóa từ vị trí nào, ví dụ : 8
      - Muốn xóa bao nhieu kí tự, ví dụ : 5
      Code:

      char *st="Nguyen Minh Long";
      int n=8,m=5,i=n-1;//gan n=8,m=5 theo de bai
      while (i+m<strlen(st))
      {st[i]=st[i+m];i++;}
      st[strlen(st)-m]='\0';


      Được sửa bởi Admin ngày Sat Feb 04, 2012 12:18 pm; sửa lần 2.
      Tony Stark

      Giới tính : Nam

      Tuổi : 31

      Đến từ : Cần thơ

      Ngày Tham gia : 10/01/2012

      Tổng số bài gửi : 750

      #4

       Sat Feb 04, 2012 11:06 am

      #include
      #include
      #define MAX 20
      int max(int,int);
      int max(int a[],int n)
      {
      int i,imax;
      imax=a[0];
      for(i=0;i {
      if(imax imax=a[i];
      return imax;
      }
      }
      main(void)
      {
      int a[MAX];
      int i=0,amax;
      while(a[i++]!=0)
      {
      printf("Nhap Mot So ");
      scanf("%d",&a[i]);
      }
      i--;
      amax=max(a,i);
      printf("So Lon Nhat %d",amax);
      getch();
      }
      ai biết xem dùm em
      tìm hết thấy lỗi rồi Biết chết liên!
      Admin
      Admin

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #5

       Sat Feb 04, 2012 11:53 am

      programminhhacker đã viết:#include
      #include
      #define MAX 20
      int max(int,int);
      int max(int a[],int n)
      {
      int i,imax;
      imax=a[0];
      for(i=0;i {
      if(imax imax=a[i];
      return imax;
      }
      }
      main(void)
      {
      int a[MAX];
      int i=0,amax;
      while(a[i++]!=0)
      {
      printf("Nhap Mot So ");
      scanf("%d",&a[i]);
      }
      i--;
      amax=max(a,i);
      printf("So Lon Nhat %d",amax);
      getch();
      }
      ai biết xem dùm em
      tìm hết thấy lỗi rồi Biết chết liên!

      bài e sai nhiều wa khai báo sai,vong lặp sai điều kiện sai
      đây là bài dễ hiểu rõ ràng nữa
      Code:

      #include <stdio.h>
      #include <conio.h>
      //Nhap
      void Nhap(int a[],int &n){
          int i;
          for(i=0;i<n;i++){
              printf("a[%d] =",i);
              scanf("%d",&a[i]);
              }
      }   
      //Xuat
      void Xuat(int a[], int n){
          int i;
          for(i=0; i<n ; i++)
              printf("%3d",a[i]);
          printf("\n");
      }
      //So lon nhat 
      int Max(int n,int a[]){
          int i,max;
          max =a[0];
          for(i=0;i<n;i++){
              if(a[i]>max)  max=a[i];
          }
          return max;
      }

      //Ham chinh-------*/
      int main(){
          int a[100],n;
          printf("\nNhap so cac phan tu cua day:");
          scanf("%d",&n);
          if(n<=0)
          return 0;
          //
          Nhap(a,n);
          printf("\nDay cac so :");
          Xuat(a,n);
          //
          printf("\nSo lon nhat trong day la :%d",Max(n,a));
       
          getch();
      }
      Admin
      Admin

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #6

       Sat Feb 04, 2012 12:32 pm

      code quan lý khách sạn hơi dở hehe lúc mới bắt đầu học C còn luu nè!!

      Tinh nang chinh

      int menu()//menu phan giao dien
      {
      int chon;

      cout<<"\n\t+*******************************+";
      cout<<"\n\t+ An phim 1. NHAP thong tin kh. +";
      cout<<"\n\t+ An phim 2. TIM khach hang +";
      cout<<"\n\t+ An phim 3. SUA thong tin. +";
      cout<<"\n\t+ An phim 4. XOA khach hang. +";
      cout<<"\n\t+ An phim 5. THEM khach hang. +";
      cout<<"\n\t*===============================*";
      cout<<"\n\t+ An phim 6. DOC du lieu. +";
      cout<<"\n\t+ An phim 7. Luu du lieu. +";
      cout<<"\n\t+ An phim 8. Tac gia +";
      cout<<"\n\t+-------------------------------+";
      cout<<"\n\t+ An phim 0. THOAT. +";
      cout<<"\n\t*********************************";
      cout<<"\n\nChon: ";
      cin>>chon;
      return chon;
      }

      Code:
      #include<conio.h>
      #include<stdio.h>
      #include<iomanip.h>
      #include<string.h>
      #define max 50
      typedef struct{
          int ngay,thang,nam;
      }date;

      typedef struct{
          int STT,tgt;
          char cmnd[10];
          char hoten[35];
          char msp[4];
          date ngayden;
          date sinh;
        int tienphong,loaiphong;
      }ks;
      int hople(date a);
      void nhap(ks kh[], int &n);
      void nhap1kh(ks &kh, int i);
      void xuat(ks kh[], int n);
      void thanhtien(ks kh[], int n);
      int menu();
      int menuTim();
      void tim(ks kh[], int n);
      void Timcmnd(ks kh[], int n);
      void TimHoTen(ks kh[], int n);
      void Timmsp(ks kh[], int n);
      void TimSinh(ks kh[], int n);
      void sua(ks kh[], int n);
      int sapxep(int n);
      void hoanvi(ks &x, ks &y);
      void xoa(ks kh[], int &n);
      void them(ks kh[], int &n);
      void doc(ks kh[], int &n);
      void ghi(ks kh[], int n);
      void nhap(ks kh[], int &n)//nhap nhieu kh

      {
          do{
          cout<<"Nhap so luong  khach hang : ";
            cin>>n;
          }while(n<0||n>100);
          for(int i=0; i<n; i++)  //su dung vong lap
            nhap1kh(kh[i],i); 
        cout<<"\nDanh sach da nhap la: ";
          xuat(kh,n);
      }

      void nhap1kh(ks &kh, int i)//nhap 1 khach hang
      {
          char tamthoi[30];
          int dodai;
          float danhdau;
          date a; kh.STT=i+1;
          cout<<"\n";
            do{
            printf("Nhap    CMND:");
              gets(tamthoi);
              dodai=strlen(tamthoi);
          }while(dodai==0||dodai>9);
          strcpy(kh.cmnd,tamthoi);
          do{
            printf("Nhap Ten:");
              gets(tamthoi);
              dodai=strlen(tamthoi);
          }while(dodai==0||dodai>25);
          strcpy(kh.hoten,tamthoi);
         
          do{
            printf("Ngay sinh (dd mm yyyy): ");
              cin>>a.ngay>>a.thang>>a.nam;
          }while(hople(a)==0||a.nam>9999);
          kh.sinh=a;
          do{
            printf("Nhap MSP");
              gets(tamthoi);
              dodai=strlen(tamthoi);
          }while(dodai==0||dodai>7);
          strcpy(kh.msp,tamthoi);
       
        printf("Loai 1 100 ngan - Loai 2 80 - Loai 3 70 ngan  Loai 4 50 ngan");
        printf("\n Chon loai");
        scanf("%d",&kh.loaiphong);
             switch(kh.loaiphong)
              {
                  case 1: kh.loaiphong=100; break;
                  case 2: kh.loaiphong=80; break;
                  case 3: kh.loaiphong=70; break;
                  case 4: kh.loaiphong=50; break;
            }
        printf("Nhap thoi gian thue vui long nhap so gio: ");
        scanf("%d",&kh.tgt);


          kh.tienphong=kh.loaiphong*kh.tgt; 
      }

      void xuat(ks kh[], int n)  //ham xuat kq.su dung cout xuat ra
      {
          cout<<"\n+===+=========+=========================+==========+====+====+==+==============+";
          cout<<"\n|STT|  CMND  |        Ho va ten        |  Sinh    |Loai|MaPh|Tg|Tien phong    |";
          cout<<"\n+===+=========+=========================+==========+====+====+==+==============+";
          for(int i=0; i<n; i++)
          { 
              cout<<"\n|"<<setw(3)<<kh[i].STT<<"|"<<setw(9)<<kh[i].cmnd<<"|"<<setw(25)<<kh[i].hoten<<"|"<<setw(2)<<kh[i].sinh.ngay<<"/"<<setw(2)<<kh[i].sinh.thang<<"/"<<setw(4)<<kh[i].sinh.nam ;
            cout<<"|"<<setw(4)<<kh[i].loaiphong;
            cout<<"|"<<setw(4)<<kh[i].msp;
            cout<<"|"<<setw(2)<<kh[i].tgt<<"H";
            cout<<"|";
            cout<<"|"<<setw(9)<<kh[i].tienphong;
              cout<<("VND|");
          cout<<"\n+---+--------+--------------------------+-----------+----+----+--+------------+";
          }
      }
       
      int menu()//menu phan giao dien
      {
          int chon;
         
          cout<<"\n\t+*******************************+";
          cout<<"\n\t+ An phim 1. NHAP thong tin kh. +";
          cout<<"\n\t+ An phim 2. TIM khach hang    +";
          cout<<"\n\t+ An phim 3. SUA thong tin.    +";
          cout<<"\n\t+ An phim 4. XOA khach hang.    +";
          cout<<"\n\t+ An phim 5. THEM khach hang.  +";
          cout<<"\n\t*===============================*";
          cout<<"\n\t+ An phim 6. DOC du lieu.      +";
          cout<<"\n\t+ An phim 7. Luu du lieu.      +";
          cout<<"\n\t+ An phim 8. Tac gia            +";
          cout<<"\n\t+-------------------------------+";
          cout<<"\n\t+ An phim 0. THOAT.            +";
          cout<<"\n\t*********************************";
          cout<<"\n\nChon: ";
          cin>>chon;
          return chon;
      }

      void Timcmnd(ks kh[], int n) //ham tim theo cmnd
      {
          ks kh2[max];
          int dem=0;
          char tamthoi[8];
          do{
              cout<<"Tim: ";
              gets(tamthoi);
          }while(strlen(tamthoi)==0||strlen(tamthoi)>8);
          for(int i=0; i<n; i++)
              if(strcmp(kh[i].cmnd,tamthoi)==0)
                  kh2[dem++]=kh[i];
          if(dem)
          {
              cout<<"\nTim thay thoa yeu cau la:";
              xuat(kh2,dem);
          }
          else
              cout<<"\nKHONG TIM THAY.";
      }

      void TimHoTen(ks kh[], int n)//tim theo ten
      {
          ks kh2[max];
          int dem=0;
          char tamthoi[25];
          do{
              cout<<"Tim: ";
              gets(tamthoi);
          }while(strlen(tamthoi)==0||strlen(tamthoi)>25);
          for(int i=0; i<n; i++)
              if(strcmp(kh[i].hoten,tamthoi)==0)
                  kh2[dem++]=kh[i];
          if(dem)
          {
              cout<<"\nTim thay thoa yeu cau la:";
              xuat(kh2,dem);
          }
          else
              cout<<"\nKHONG TIM THAY.";
      }

      void Timmsp(ks kh[], int n)
      {
          ks kh2[max];
          int dem=0;
          char tamthoi[8];
          do{
              cout<<"Tim: ";
              gets(tamthoi);
          }while(strlen(tamthoi)==0||strlen(tamthoi)>8);
          for(int i=0; i<n; i++)
              if(strcmp(kh[i].msp,tamthoi)==0)
                  kh2[dem++]=kh[i];
          if(dem)
          {
              cout<<"\nTim thay thoa yeu cau la:";
              xuat(kh2,dem);
          }
          else
              cout<<"\nKHONG TIM THAY.";
      }

      void TimSinh(ks kh[], int n)
      {
          ks kh2[max];
          int dem=0;
          date a;
          do{
              cout<<"Tim: ";
              cin>>a.ngay>>a.thang>>a.nam;
          }while(hople(a)==0||a.nam>9999);
          for(int i=0; i<n; i++)
              if(kh[i].sinh.ngay==a.ngay&&kh[i].sinh.thang==a.thang&&kh[i].sinh.nam==a.nam)
                  kh2[dem++]=kh[i];
          if(dem)
          {
              cout<<"Tim thay thoa yeu cau la:";
              xuat(kh2,dem);
          }
          else
              cout<<"KHONG TIM THAY.";
      }


      int menuTim()
      {
          int chon;
          cout<<"\n\n2.1 Tim theo MSkh.";
          cout<<"\n2.2 Tim theo TEN.";
          cout<<"\n2.3 Tim theo LOP.";
          cout<<"\n2.4 Tim theo SINH NHAT.";
          cout<<"\n\nChon: ";
          cin>>chon;
          return chon;
      }

      void tim(ks kh[], int n)
      {
          int chon;
          if(n==0)
          {
              cout<<"Danh sach dang rong.";
              return;
          }
          chon=menuTim();
          switch(chon)
          {
              case 1: Timcmnd(kh,n); break;
              case 2: TimHoTen(kh,n); break;
              case 3: Timmsp(kh,n); break;
              case 4: TimSinh(kh,n); break;
           
          }
      }

      void them(ks kh[], int &n) //them kh
      {
          if(n==0)
              cout<<"Ban dang them vao danh sach rong.";
          n++;
          nhap1kh(kh[n-1],n-1);
          cout<<"\nDanh sach hien tai la: ";
          xuat(kh,n);
      }

      int hople(date a)  //xet ngay thang nam hop le
      {
          int maxngay;
          if(a.ngay<=0 || a.ngay>31 || a.thang<=0 || a.thang>12 || a.nam<=0)
              return 0;
          else
          {
              switch(a.thang)
              {
                  case 2:
                      if((a.nam%100>0&&a.nam%4==0)||a.nam%400==0)
                          maxngay=29;
                      else
                          maxngay=28;
                      break;
                  case 4:
                  case 6:
                  case 9:
                  case 11: maxngay=30; break;
                  default: maxngay=31;
              }
              if(a.ngay>maxngay)
                  return 0;               
          }
          return 1;
      }
      int sapxep(int n)  //sep xep  theo thu tu
      {
          int khac;
          do{
              cout<<"\nSinh vien thu: ";
              cin>>khac;
          }while(khac<=0||khac>n);
          return khac;
      }

      void sua(ks kh[], int n)  //su thong tin sv
      {
          int khac;
          if(n==0)
          {
              cout<<"Danh sach dang rong.";
              return;
          }
          khac=sapxep(n);
          nhap1kh(kh[khac-1],khac-1);
          cout<<"\nDanh sach da duoc sua: ";
          xuat(kh,n);
      }

      void hoanvi(ks &x, ks &y)
      {
          ks tamthoi;
          tamthoi=x;
          x=y;
          y=tamthoi;
      }
       
      void xoa(ks kh[], int &n)  //ham xoa
      {
          int khac;
          if(n==0)
          {
              cout<<"Danh sach dang rong.";
              return;
          }
          khac=sapxep(n);
          for(int i=khac-1; i<n; i++)
          {
              hoanvi(kh[i],kh[i+1]);
              kh[i].STT--;
          }
          n--;
          cout<<"\nDanh sach hien tai: ";
          xuat(kh,n);
      }
      //Phan mo rong them doc va luu

      void doc(ks kh[], int &n)
      {
          char get;
          char path[50];
          FILE *mo;
          long length;
          do{
              cout<<"\nDuong dan: ";
              cin>>path;
          }while(path==NULL);
          mo=fopen(path, "rb");//vi du Khachhang.dat"
          if(mo==NULL)
              cout<<"\nKhong mo duoc tap tin.";
          else
          {
              fseek(mo, 0, 2);
              length=ftell(mo);
              rewind(mo);
              n=length/sizeof(ks);
              fread(kh,sizeof(ks),n,mo);
              fclose(mo);
              cout<<"\nDoc duoc "<<n<<" khach hang.";
              xuat(kh,n);
          }
      }
      void ghi(ks  kh[], int n)
      {
          FILE *luu;
          char path[50];
          long length;
          do{
              cout<<"\nDuong dan: ";//Khachhang.dat
              cin>>path;
          }while(path==NULL);
          luu=fopen(path, "wb");
          fwrite(kh,sizeof(ks),n,luu);
          cout<<"\nGhi hoan tat.";
          fclose(luu);
      }
      void tacgia()
      {
      cout<<"\n******************************";   
      cout<<"\n* Nguyen Minh Nhat          *";
      cout<<"\n******************************";


      }
      void main()
      {
          ks kh[max];
          int n=0, chon;

          do{
              chon=menu();
              if(chon==0)
                  break;
              switch(chon)
              {
                  case 1: nhap(kh,n); break;
                  case 2: tim(kh,n); break;
                  case 3: sua(kh,n); break;
                  case 4: xoa(kh,n); break;
                  case 5: them(kh,n); break;
                  case 6: doc(kh,n); break;
                  case 7: ghi(kh,n); break;
               case 8: tacgia(); break;
                  default:
                    printf("KHONG HOP LE.");
              }
          }while(1);


      Tony Stark

      Giới tính : Nam

      Tuổi : 31

      Đến từ : Cần thơ

      Ngày Tham gia : 10/01/2012

      Tổng số bài gửi : 750

      #7

       Sat Feb 04, 2012 12:39 pm

      Hic không biết sao em copy lên đây thì nó bị như vậy chứ em viết đủ mà
      tự nhiên mất luôn khúc sao
      #8