2016-11-19 5 views
-1

좋아요. 일부 입력을 수행하고 사용자에게 y를 입력하는 입력이 완료되었는지 묻는 것이 좋습니다. 그렇지 않으면 n을 입력하십시오. INT CaseCheck이함수를 사용하여 대문자를 c로 소문자로 바꾸는 방법 (또는 scanf에서 모두 사용)

• 함수가 호출되어야합니다 'CaseCheck을 (숯불 B를를 숯불) :

이 가이드로 다음과 같은 프로토 타입을 사용하여 함수를 작성 :

는 지금은이 문제에 직면 '

• 함수는 두 개의 문자가

•이 기능이 모두있는 경우 1을 반환 매개 변수에 동의해야합니다 문자는 알파벳 자이며 대소 문자를 구분하지 않습니다.

• 함수는 다른 모든 조건에서 0을 반환합니다.

• 함수는 유효한 ASCII 문자 을 입력해야합니다. 주요 기능에

, 당신은 입력하도록 요청하여 이전 코드 수정해야합니다 '를 Y'또는 'N'(이 기능을 사용하고 암시 적으로도 'Y'를 수용하고 'N'유효한 응답).

int main() 
{ 
    int maxAssignments = 0; 
    float MarksAwarded[100]; 
    float MarksAvailable[100]; 
    char grade; 
    char finish = 'n'; 

    //enter in the marks 
    do 
    { 
     printf("Enter the marks awarded:"); 
     scanf("%f", &MarksAwarded[maxAssignments]); 
     printf("Enter the marks available:"); 
     scanf("%f", &MarksAvailable[maxAssignments]); 

     printf("If you have finished, type y. \n"); 
     scanf(" %c", &finish); 

     maxAssignments++; 
    } while (finish != 'y'); 

    printf("Calculating your grade...\n"); 

    //do the calulation. 
    grade = GradeFromTotalRawMarks(MarksAwarded, MarksAvailable, maxAssignments); 

    printf("The grade is %c\n", grade); 
    return 0; 
} 

내가 다른 기능이 작업 표시하는 데 필요한 생각하지 않습니다하지만 당신이 그들을 원한다면이 게시물을 수정할 것

여기에 코드입니다.

+0

ASCII 테이블 (http://www.asciitable.com/)과 약간의 수학이 있어야합니다. –

+0

마이클 알버 (Michael Albers)는 정교하게 신경 쓰나요? –

+1

코드가 할당과 관련이없는 것 같습니다. – Schwern

답변

0

두 문자가 모두 알파벳 문자 인 경우 함수는 1을 반환하고 대소 문자를 무시하고 동일합니다.

ctype.h (ie. "character type") contains many functions for identifying and manipulating characters. isalphatoupper으로 기능을 수행 할 수 있습니다.

우선 a 또는 b이 편지가 아닌 경우 보석금이 먼저 부과됩니다. isalpha을 사용하면됩니다.

#include <ctype.h> 

int CaseCheck(char a, char b) { 
    if(!isalpha(a) || !isalpha(b)) { 
     return 0; 
    } 

이제 문자가 맞다는 것을 알았으므로 문자를 비교하여 비교할 필요가 있습니다. 이를 수행하는 기본 방법은 둘 모두를 동일한 경우로 표준화하는 것입니다. 위 또는 아래, 상관 없습니다. tolower을 사용하겠습니다.

if(tolower(a) == tolower(b)) { 
     return 1; 
    } 

그리고 그 중 아무 것도 작동하지 않으면 false를 반환합니다.

return 0; 
+0

stdio.h를 도와 주시겠습니까? 아니면 실행 취소 할 수 있습니까? –

+0

@ 13.37f 미안하지만, 네가 무엇을 요구하는지 모르겠다. – Schwern

+0

보조 : 오직'isalpha()'테스트가 필요합니다. – chux