본문 바로가기

PROGRAM/C

구구단 가로로 출력 + 제외할 단 입력

구구단을 출력하는데 입력받은 단은 제외하는 프로그램

/******************************************************************************
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl,
C#, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog.
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main()
{
    char name[100];
    int aaa[10], k=0;
    int line,num,z,check;
    printf("구구단에서 제외할 단을 선택하시오 : ");
    fgets(name, 100, stdin);
    // printf("%s",name);
    char* token;
    token = strtok(name, " ");
    
    while(token != NULL){
        aaa[k] =atoi(token);
        // printf("%d %s\n",aaa[k],token);
        if(aaa[k]>=2 && aaa[k]<=9){
            k++;
        }
        token = strtok(NULL, " ");
    }
    
    for(num=1;num<=9;num++){
        for(line=2; line<=9; line++){
            check = 1;
            for(z=0; z<k; z++)
                if(line == aaa[z])
                    check = 0;
            
            if(check==1)
                printf("%d * %d = %2d ", line , num , line*num);
        }
        printf("\n");
    }
 
    return 0;
}

 

 

Visual Studio - strtok_s 사용

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

int main()
{
    char name[100];
    int aaa[10];
    int k=0, line, num, z, check;
    char* delimeter = " ";
    char* token, *context=NULL;
    
    printf("구구단에서 제외할 단을 선택하시오 : ");
    fgets(name, 100, stdin);
    //printf("%s",name);

    token = strtok_s(name, delimeter, &context);

    while (token != NULL) {
        aaa[k] = atoi(token);
        //printf("%d %s\n", aaa[k], token);

        if (aaa[k] >= 2 && aaa[k] <= 9) {
            k++;
        }
        token = strtok_s(NULL, delimeter, &context);
    }
    
    for (num = 1; num <= 9; num++) {
        for (line = 2; line <= 9; line++) {
            check = 1;
            for (z = 0; z < k; z++)
                if (line == aaa[z])
                    check = 0;

            if (check == 1)
                printf("%d * %d = %2d ", line, num, line * num);
        }
        printf("\n");
    }

    return 0;
}

'PROGRAM > C' 카테고리의 다른 글

이름 입력받아 테두리에 별 찍기  (0) 2023.04.03
10진수를 2진수 16진수로 출력하기  (0) 2021.08.17