반응형

C언어 입력한 숫자까지의 합

 

 

Sum from 1 to input number - for loop

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* Sum from 1 to input number - for loop */
#include <stdio.h>
 
int getInputNumber() {
    int input = 0;
    printf("Input an integer: ");
    scanf("%d"&input);
    return input;
}
 
int getSum(int input) {
    int sum = 0;    
    for (int i = 1; i <= input; i++ ) {
        sum += i;
    }
    return sum;
}
 
void print(int num, int sum) {
    printf("Sum from 1 to %d is '%d'", num, sum);
}
 
int main() {
    int num = getInputNumber();
    int sum = getSum(num);
    print(num, sum);
    return 0;
}
cs

 

 

Sum from 1 to input number - recursion

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* Sum from 1 to input number - recursion */
#include <stdio.h>
 
/* Get input number */
int getInputNumber() {
    int input = 0;
    printf("Input an integer: ");
    scanf("%d"&input);
    return input;
}
 
/* Recursion */
int getSum(int input) {
    if (input == 1return 1;
    else return input + getSum(input-1);
}
 
/* Print result */
void print(int num, int sum) {
    printf("Sum from 1 to %d is '%d'", num, sum);
}
 
int main() {
    int num = getInputNumber();
    print(num, getSum(num));
    return 0;
}
cs

 

 

 

 

Input number test - Sum

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* Input number test - Sum */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdbool.h>
 
bool isValid(int n, const char input[]) {
    if (input[0== '0'return false;
    for (int i = 0; i < n; i++if (!isdigit(input[i])) return false;
    return true;
}
 
int convert(int n, const char input[]) {
    return isValid(n, input) ? atoi(input) : -1;
}
 
int add(int n) {
    int sum = 0;
    for (int i = 1; i <= n; i++) {
        sum += i;
    }
    return sum;
}
 
int main(int n, char *args[n]) {
    setbuf(stdout, NULL);
    if (n == 1) {
        return 0;
    } else if (n == 2) {
        int num = convert(strlen(args[1]), args[1]);
        if (num == -1) {
            printf("Invalid input!!\n");
            fprintf(stderr, "Try:   ./intest_2    or   ./intest_2 integer\n");
            fprintf(stderr, "ex. ./intest_2 22\n");
        } else {
            int sum = add(num);
            printf("Sum from 1 to %d is '%d'", num, sum);
        }
    } else {
        fprintf(stderr, "Try:   ./intest_2    or   ./intest_2 integer\n");
        fprintf(stderr, "ex. ./intest_2 22\n");
    }
    return 0;
}
cs

 

.\intest_2 11
 
반응형