타분반 과제
문제1
#include <string.h>
typedef struct student {
int num;
char name[100];
float score;
}Student;
Student maxscore(Student s[100], int cnt);
int main(void) {
Student s[100];
int numlist[100] = {0};
int cnt = 0;
int tempnum = 0;
int compare = 0;
Student max_s;
printf("---- 학생 정보 입력 (종료:0) ----\n");
while (1) {
printf("번호 : ");
scanf("%d", &tempnum);
if (tempnum == 0) break;
if (cnt != 0) {
compare = 0;
for (int k = 0; k < cnt; k++) {
if (numlist[k] == tempnum) compare = 1;
}
if (compare) {
printf("동일한 데이터 존재!\n");
continue;
}
}
numlist[cnt] = tempnum;
s[cnt].num = tempnum;
printf("이름 : ");
scanf("%s", s[cnt].name);
printf("학점 : ");
scanf("%f", &s[cnt].score);
cnt++;
printf("\n");
}
printf("\n---- 전체 학생 정보 ----\n");
for (int i = 0; i < cnt; i++) {
printf("번호 : %d, 이름 : %s, 학점 : %.1f\n", s[i].num, s[i].name, s[i].score);
}
max_s = maxscore(s, cnt);
printf("---- 최고 학생 정보 ---- \n");
printf("번호 : %d, 이름 : %s, 학점 : %.1f\n", max_s.num, max_s.name, max_s.score);
}
Student maxscore(Student s[100], int cnt) {
Student max = s[0];
if (cnt > 1) {
for (int i = 1; i < cnt; i++) {
if (s[i].score > max.score) {
max = s[i];
}
}
}
return max;
}
call by reference
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
#include <ctype.h>
#include <string.h>
typedef struct student {
int num;
char name[100];
float score;
}Student;
Student maxscore(Student *s, int cnt);
int main(void) {
Student s[100];
int numlist[100] = {0};
int cnt = 0;
int tempnum = 0;
int compare = 0;
Student max_s;
printf("---- 학생 정보 입력 (종료:0) ----\n");
while (1) {
printf("번호 : ");
scanf("%d", &tempnum);
if (tempnum == 0) break;
if (cnt != 0) {
compare = 0;
for (int k = 0; k < cnt; k++) {
if (numlist[k] == tempnum) compare = 1;
}
if (compare) {
printf("동일한 데이터 존재!\n");
continue;
}
}
numlist[cnt] = tempnum;
s[cnt].num = tempnum;
printf("이름 : ");
scanf("%s", s[cnt].name);
printf("학점 : ");
scanf("%f", &s[cnt].score);
cnt++;
printf("\n");
}
printf("\n---- 전체 학생 정보 ----\n");
for (int i = 0; i < cnt; i++) {
printf("번호 : %d, 이름 : %s, 학점 : %.1f\n", s[i].num, s[i].name, s[i].score);
}
max_s = maxscore(s, cnt);
printf("---- 최고 학생 정보 ---- \n");
printf("번호 : %d, 이름 : %s, 학점 : %.1f\n", max_s.num, max_s.name, max_s.score);
}
Student maxscore(Student *s, int cnt) {
Student max = *s;
if (cnt > 1) {
for (int i = 1; i < cnt; i++) {
s++;
if ((*s).score > max.score) {
max = *s;
}
}
}
return max;
}
문제2
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int compare(char* s1, char* s2);
int main() {
char s1[11];
char s2[11];
int result=0;
printf("두 문자열 입력 : ");
scanf("%s %s", s1, s2);
result = compare(s1, s2);
if (result) printf("%s and %s : equal", s1, s2);
else printf("%s and %s : not equal", s1, s2);
return 0;
}
int compare(char* s1, char* s2) {
while (1) {
if (*s1 != *s2) return 0;
else if ((*s1 == 0) && (*s2 == 0))break;
s1++;
s2++;
}
return 1;
}
문제 3
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
void prn_even(int num) {
if (num <= 1) return;
if (num % 2) {
printf("%d\n", num - 1);
prn_even((num - 1)/2);
}
else {
printf("%d\n", num);
prn_even(num/2);
}
}
int main(void) {
int i;
printf("입력: ");
scanf("%d", &i);
prn_even(i);
return 0;
}
문제 4
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
#include <string.h>
int main() {
char text[100];
printf("텍스트를 입력하세요\n");
gets_s(text, 100);
for (char al = 'a'; al <= 'z'; al++) {
int cnt = 0;
char* ptr = strchr(text, al);
while (ptr != NULL) {
cnt++;
ptr = strchr(ptr + 1, al);
}
printf("%c: %d\n", al, cnt);
}
return 0;
}
Author And Source
이 문제에 관하여(타분반 과제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@rkdud007/타분반-과제저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)