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

Đề tài: Ai đó tìm hộ em cái lỗi của bài này không ??

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    0

    Mặc định Ai đó tìm hộ em cái lỗi của bài này không ??

    Em vô dụng quá, tìm hoài không ra lỗi, lỗi của bài này là ở chỗ, soạn thảo văn bản mổ phỏng của word nhưng mà em vẫn chưa tìm ra cái lỗi chèn thêm vào nhưng lại xóa cái mình đã nhập vào... Và còn chỗ xuất ra chưa xuất được.. Đau đầu quá.........

    Code:
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    
    /*********************************************************/
    main()
    {
    	int n=0,i,j;
    	char mang[1000];
    	unsigned char counter_enter;
    	int dght=2,cotht=1;
    
    	char ch;
    
    	clrscr();
    
    	printf("\n Nhap chuoi:");printf("\n\r");
    
    	while(ch!=27)
    	{
    	   /*===========nhap va in ra ki tu vua nhap=======*/
    		ch = getch();
    		mang[n++] = ch;
    	   /*=============kiem tra trang dong============*/
    		if((cotht>=80))
    			{
    				cotht=1;
    				dght++;
    			}
    		else
    			if(ch==13)
    				{
    					cotht=1;
    					dght++;
    				}
    		 /*=============hieu hinh lui'<-'============*/
    		if(ch>=0&&ch<=31)
    		{
    			if(ch==0)
    			{
    				ch=getch();
    				if(ch==75)
    				{
    					gotoxy(wherex()-1,wherey());
    					dght=dght;
    					cotht=cotht-1;          /******************/
    					if (cotht<1)
    					{
    						dght=dght-1;
    						cotht=80;
    						gotoxy(cotht,dght);
    
    						if(ch==75)
    						{
    							//mang[n]=mang[n-1];
    							dght=dght;
    							cotht=cotht-1;
    							gotoxy(cotht,dght);
    						}                       /****************/
    					}    /*****************/
    				}
    		  //	   printf("%d,%d",wherex(),wherey());
    		 /*=============hieu chinh tien'->'============*/
    				if(ch==77)
    				{
    					gotoxy(wherex()+1,wherey());
    					dght=dght;
    					cotht=cotht+1;
    					if (cotht>=80)
    					{
    						dght=dght+1;
    						cotht=1;
    						gotoxy(cotht,dght);
    						if(ch==77)
    						{
    							dght=dght;
    							cotht++;
    							gotoxy(cotht,dght);
    						}                       /****************/
    					}
    				}
    		 //	   printf("\n%d,%d",wherex(),wherey());
    		 /*=============hieu chinh len============*/
    				if(ch==72)
    				{
    					gotoxy(wherex(),wherey()-1);
    					dght=dght-1;
    					cotht=cotht;          /******************/
    					if (dght<1)
    					{
    						dght=25;
    						cotht=cotht;
    						gotoxy(cotht,dght);
    
    						if(ch==72)
    						{
    							dght=dght-1;
    							cotht=cotht;
    							gotoxy(cotht,dght);
    						}                       /****************/
    					}    /*****************/
    		   //	   printf("\n%d,%d",wherex(),wherey());
    				}
    		 /*=============hieu chinh xuong dong============*/
    				if(ch==80)
    				{
    					gotoxy(wherex(),wherey()+1);
    					dght=dght+1;
    					cotht=cotht;          /******************/
    					if (dght>10)
    					{
    						j=1;
    						for (i=0;i<n;i++)
    						{
    							if(mang[i]>31)
    							{
    								dght=2;
    								j++;
    								if(mang[i]==13)
    									gotoxy(j,dght);
    							}
    							if(mang[i]==13) break;
    						}                                /**********/
    						if(ch==80)
    						{
    						//		mang[n]=mang[n-1];
    							dght=dght+1;
    							cotht=cotht;
    							gotoxy(cotht,dght);
    						}                /****************/
    					}    /*****************/
    		   //	   printf("\n%d,%d",wherex(),wherey());
    				}
    			if(ch==83)
    				{
    			 //		cotht--;
    			 //		i=i-1;
    				//	gotoxy(wherex()-1,wherey());
    					mang[n-1]=mang[n];
    					gotoxy(wherex()-1,wherey());
    
    					putchar(mang[n-1]);
    				}
    
    			}
    		}
    		else
    			{
    				cotht++;
    				putchar(mang[n-1]);
    			}
    		if(ch==8)
    			{
    			 //cotht--;
    			 //i=i-1;
    				gotoxy(wherex()-1,wherey());
    				mang[n-1]=mang[n-2];
    				gotoxy(wherex(),wherey());
    				putchar(mang[n-1]);
    			}
    
    		/*=============ngung nhap van ban============*/
    
    		if(ch==13)
    			puts("");
    
    	}
    //	for
    	return 0;
    
    
    }

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Bạn viết code di chuyển trái phải lên xuống quá dài chiếm gần hết chương trình, với cái đó bạn chỉ cần 2 biến x,y chỉ toạ độ rồi giảm tăng x khi di chuyển trái phải, giảm tăng i khi di chuyển lên xuống, khi x hoặc y vượt quá 80 hay 25 tương ứng thì x=x-80;y=y-25; kiểu như vây.
    Bài của bạn nên tách thành chương trình còn để dễ quản lý.
    Cho mình hỏi 83 là phím gì vậy, bạn có bảng giá trị số của các phím đặc biệt không cho mình xin.
    Nút xoá back không hoạt động, mình cũng không nhớ giá trị số của nó là bao nhiêu. Bạn nên thêm vào phím Home(71) và End(79) cho thêm sinh động
    Còn cái việc bạn muốn thêm mà lại trở thành insert thì nếu tiếp tục làm theo hướng này thì chịu không sửa được vì nó đã in ra màn hình rồi
    Mình mới nghĩ ra một hướng đi khác, chắc phải làm lại từ đầu, bạn thử tạo một mảng char a[25][80] 25 hàng 80 cột khi này mọi thao tác thêm xoá sửa thực hiện trên mảng chắc sẽ dễ hơn, và phải in mảng liên tục sau mỗi vòng lặp ... đó là ý tưởng thôi, mong bạn sẽ hiện thực nó.

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