본문 바로가기
ONLINE COURSES/CS50

cs50_strlen( ) // iteration // recursion

by jono 2021. 6. 2.

0.

#include <cs50.h>
#include <stdio.h>

float average(int length, int array[]);
int main(void)
{
//  사용자로부터 점수의 갯수 받음
    int n = get_int("number of scores :");

// 배열 선언 및 사용자로부터 점수 받음
    int scores[n];
    for (int i=0; i<n; i++)
    {
        scores[i] = get_int("score %i : ", i+1);
    }

//평균 출력
    printf("average: %.1f\n", average(n,scores));
}

// 평균을 계산하는 함수
float average(int length, int array[])
{
    int sum = 0;
    for (int i=0; i<length; i++)
    {
        sum += array[i];
    }
    return (float)sum / (float)length;
}

 

1. strlen( ): 괄호 안의 문자의 길이를 반환함.

#include <cs50.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void)
{
    string s = get_string("before: ");
    printf("after: ");
    for (int i=0, n=strlen(s); i<n; i++)
    {
        printf("%c", toupper(s[i]));
    }
    printf("\n");
}

 

2. phonebook.c

#include <cs50.h>
#include <stdio.h>
#include <string.h>

int main(void)
{
    string names[4] = {"jane", "tom", "richard", "michael"};
    string numbers[4] = {"010-1111-0001", "010-1111-0002", "010-1111-0003", "010-1111-0004"};
    
    for (int i=0; i<4; i++)
    {
        if (strcmp(names[i], "richard") == 0 )
        {
            printf("%s\n", numbers[i]);
            return 0;
        }
    }
    printf("not found\n");
    return 1;

 

#include <cs50.h>
#include <stdio.h>
#include <string.h>
typedef struct
{
    string name;
    string number;
}
person;

int main(void)
{
    person people[4];
    
    people[0].name = "jane";
    people[0].number = "010-1111-0001";

    people[1].name = "tom";
    people[1].number = "010-1111-0002";

    people[2].name = "richard";
    people[2].number = "010-1111-0003";

    people[3].name = "michael";
    people[3].number = "010-1111-0004";

    for (int i=0; i<4; i++)
    {
        if (strcmp(people[i].name, "richard") == 0 )
        {
            printf("%s\n", people[i].number);
            return 0;
        }
    }
    printf("not found\n");
    return 1;
}

 

3. iteration

#include <cs50.h>
#include <stdio.h>

void draw(int h);


int main (void)
{
    int height = get_int("height: ");
    draw(height);
}
void draw(int h)
{
    for (int i =1; i<=h ; i++)
    {
        for (int j = 1; j<=i; j++)
        {
            printf("#");
        }
        printf("\n");
    }
}

 

4. recursion

#include <cs50.h>
#include <stdio.h>

void draw(int h);

int main (void)
{
    int height = get_int("height: ");
    draw(height);
}

void draw(int h)
{
    if (h == 0)
    {
        return;
    }

    draw(h-1);

    for (int i=0; i<h; i++)
    {
        printf("#");
    }
    printf("\n");
}

'ONLINE COURSES > CS50' 카테고리의 다른 글

address & pointer // malloc // swap // file  (0) 2021.06.07

댓글