#include<stdio.h>
intcalculatePoint(chars[]);
intmain(void)
{
charstr[20];
printf("단어를 입력하세요(빈칸없이): ");
scanf("%s", str);
printf("점수는 %d\n", calculatePoint(str));
}
intcalculatePoint(chars[])
{
inti, total = 0;
for (i = 0; s[i] != '\0'; i++)
{
if(s[i] >= 'A'&& s[i] <= 'Z')
total += s[i] - 'A'+ 1;
else
total += s[i] - 'a'+ 1;
}
returntotal;
}
결과:
A=1, B=2, C=3 ... Z=26 같은 방법으로 단어의 점수를 계산하는 것
#include <stdio.h> // printf, scanf가 선언된 해더파일 #include <string.h> // strcpy, strcmp가 선언된 해더파일 struct student { char name[10]; // 성명 int score[4]; // 성적 4과목 int sum; // 합계 int rank; // 석차 }; // 구조체 선언 int main() { char *sub[4] = {"Korean", "English", "Math", "Science"}; struct student tmp = {0, }; // 정렬할 때 사용할 임시 기억장소 struct student s[10] = {0, }; // 학생 수 10명 int rank, add = 1; int i, j; // 루프용 변수 for (i = 0; i < 10; i++) { // 10명 성적 입력 printf("%d번째 학생의 이름 : ", i+1); // 0번이라고 출력할 수 없으니 scanf("%s", s[i].name); for (j = 0; j < 4; j++) { printf("%s : ", sub[j]); scanf("%d", &s[i].score[j]); s[i].sum += s[i].score[j]; // 총점 } for (j = 0, rank = 1; j < i; j++) if (s[j].sum > s[i].sum) rank++; printf("현재 석차 : %d\n", rank); } for (i = 0; i < 10; i++) { for (j = 0; j < 10-i-1; j++) { if (s[j].sum < s[j+1].sum) { // 총점 내림차순 정렬 tmp = s[j]; s[j] = s[j+1]; s[j+1] = tmp; } } } for(s[0].rank = 1, add = 1, i = 1; i < 10; i++) { // 동점자 고려 석차 결정 if (s[i].sum == s[i-1].sum) { add++; s[i].rank = s[i-1].rank; } else { s[i].rank = s[i-1].rank + add; add = 1; } } for (i = 0; i < 10; i++) { // 전체 학생 출력 printf("%-9s %3d %2d\n", s[i].name, s[i].sum, s[i].rank); } printf("press anykey to continue..."); getchar(); return 0; } | cs |