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

Đề tài: [ Solved ]Không hiểu sai cái j ???

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

    Unhappy [ Solved ]Không hiểu sai cái j ???

    Code:
    /*Chuyen ky tu sang ky tu HOA
    */
    
    #include <stdio.h> //printf,scanf
    #include <stdlib.h> //system
    
    char hoa(char q)
    {	
    	char q;
    	if (q>='a'&&q<='z')
    	{
    		return q-32;
    	}
    	else
    	{
    		return q;
    	}
    }//hoa
    
    void main ()
    {
    	char q;
    	printf("Nhap vao 1 ky tu bat ky\n");
    	scanf("%c",&q);
    	hoa (q);
    	printf("%c\n",q);
    	system("pause");
    }//main
    error C2082: redefinition of formal parameter 'q'
    Tai sao ko chạy dc nhỉ ?

    Lưu ý: Để code vào tag code. Đọc Nội quy để biết thêm chi tiết
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 22-01-2008 lúc 07:22 PM. Lý do: code vào tag

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

    A hiểu rồi, mình tệ wá hihi

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

    Tại sao lỗi vậy, giải thích cho tui biết với, tui cũng newbie như bạn ?

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

    Lỗi của mình ở 2 chỗ :
    Thứ 1 : char hoa(char q)
    char q;
    Biến xuất trùng biến nhập
    Thứ 2 : hoa (q);
    printf("%c\n",q);
    Mình chưa gán giá trị cho biến q mà đòi xuất ^^ phải như vậy mới đúng :
    q=hoa (q);
    printf("%c\n",q);
    Hihi ẩu wá ^^

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

    À, tui hiểu rồi, vậy nếu tui khai báo như sau:
    Code:
    #include <stdio.h> //printf,scanf
    #include <stdlib.h> //system
    ...
    char q = 'A';
    ....
    char hoa(char q)
    {
        if (q >= 'a' && q<= 'z')
        {
            return q - 32;
        }
        else
        {
             return q;
        }
    } //hoa
    ....
    Vậy thì q trong hàm hoa sẽ là q nào, và làm sao dùng được biến q toàn cục.
    Bạn giải thích giùm tui với.

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

    Mặc định [ Solved ]Không hiểu sai cái j ???

    Cái hàm hoa của bạn có ý nghĩa:
    Truyền vào 1 tham trị q( kiểu char) , xuất ra màn hình kí tự in hoa của kí tự q đó

    Đoạn này:

    if (q >= 'a' && q<= 'z'){
    return q - 32;
    }
    có nghĩa: nếu q nằm trong khoảng [a..z] thì trả lại kí tự ascii đứng trước q 32 đơn vị.
    Trong bảng mã ascii, các kí tự 'A' đến 'Z' có mã từ 65 tới 90
    và 'a' đến 'z' có mã từ 97 tới 122
    Đó là lý do vì sao lại return q - 32

    Còn trong trương hợp ngược lại( ý của hàm là nếu q năm trong khoảng [A..Z] ) tức là kí tự đã là kí tự hoa, thì sẽ trả lại chính nó
    Tuy nhiên bài này chưa chính xác lắm, nhỡ kí tự đó không nằm trong khoảng [A..Z] và cũng không nằm trong khoảng [a..z] thì sao?

    Như vậy hàm hoa của bạn sẽ trả lại giá trị 'A'( tra lại chính giá trị q)

    Bạn cũng có thể dùng toupper(q) để thực hiện công việc trên. Hàm này mình không nhớ chính xác, nhưng hình như là khai báo trong file thư viện string.h

    Bài của bạn dùng q là toàn cục hay địa phuơng không ảnh hưởng gì vì lí do hàm đã được truyền tham tri.

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

    Mình dùng else mà, ko nằm trong [a-z] deu tra lai chinh no het

  8. #8
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Cái này có hàm của string để xử lý chuyên biệt không nhất thiết phải làm thế kia lằng nhằng ra, dùng hàm strlwr() là xong mà phiền phức quá.

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

    Thầy ko cho dùng mới tức !

  10. #10
    Ngày gia nhập
    09 2008
    Bài viết
    328

    Code:
    #include<iostream>
    #include<windows.h>
    #include "stdlib.h"
    using namespace std;
    char hoa(char q)
    {
        if (q >= 'a' && q<= 'z')
        {
            return q - 32;
        }
        else
        {
    		return q;
        }
    } //hoa
    char *chuyenhoa(char chuoi[100])
    {
        int n= lstrlen(chuoi);
        char ketqua[100];
        int i;
        for(i=0;i<n;i++)
        {
            ketqua[i]=hoa(chuoi[i]);
    		
        }
        ketqua[n]=0;
        return ketqua;
    }
    int main()
    {
    	char chuoi[100];
    	cout<<"nhap chuoi:";
    	cin.getline(chuoi,100);
    	cout<<chuyenhoa(chuoi);
    	system("pause");
    }

Các đề tài tương tự

  1. Hiển thị 1 ảnh với MFC như thế nào ?
    Gửi bởi maivantien87 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 31-01-2013, 11:33 AM
  2. Truyện cười_Ám hiệu đôi tình nhân
    Gửi bởi luuthily90 trong diễn đàn Giải trí - Thư giãn
    Trả lời: 0
    Bài viết cuối: 06-11-2012, 11:11 AM
  3. Hiện tại là món quà của cuộc sống
    Gửi bởi luuthily90 trong diễn đàn Giải trí - Thư giãn
    Trả lời: 0
    Bài viết cuối: 25-10-2012, 02:04 PM
  4. Database Hiện ảnh của người tương ứng khi xem hồ sơ của họ với C# và SQL?
    Gửi bởi linh_kute trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 03-03-2011, 11:44 AM
  5. Bài tập C++ Kiểm tra phần tử xuất hiện giữa 2 mảng
    Gửi bởi hamster_no1 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 27-03-2010, 09:09 PM

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