반응형
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 == 1) return 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
|
반응형
'C 언어 > C언어 기초' 카테고리의 다른 글
[C언어 #15] 점수 학점 변환 (0) | 2020.06.20 |
---|---|
[C언어 #14] 기름값, 연비 계산 (0) | 2020.06.19 |
[C언어 #12] 배열의 합과 평균 (0) | 2020.06.18 |
[C언어 #11] 2개 배열의 최대값 최소값 (0) | 2020.06.18 |
[C언어 #10] 배열 내의 숫자 중 특정 수 이상의 개수 (0) | 2020.06.18 |