자기주도C언어프로그래밍 Chapter11. 함수1 - 형성평가
1. ‘@’문자를 10개 출력하는 함수를 작성 한 후 함수를 세 번 호출하여 아래와 같이 출력하는 프로그램을 작성하시오.
출력 예
first
@@@@@@@@@@
second
@@@@@@@@@@
third
@@@@@@@@@@
#include <stdio.h>
void print_a(){
printf("@@@@@@@@@@\n");
}
int main(){
printf("first\n");
print_a();
printf("second\n");
print_a();
printf("third\n");
print_a();
return 0;
}
※ 함수를 print_@로 해서 @를 출력한다고 하고싶었는데 함수 이름에 @를 쓰지 못해서 a로 했습니다.
2. 1부터 전달받은 수까지의 합을 출력하는 함수를 작성하고 1000 이하의 자연수를 입력받아 작성한 함수로 전달하여 출력하는 프로그램을 작성하시오.
입력 예
100
출력 예
5050
#include <stdio.h>
void cal_sum(int num){
int i, sum=0;
for(i=1;i<=num;i++)
sum += i;
printf("%d", sum);
}
int main(){
int a;
scanf("%d", &a);
cal_sum(a);
return 0;
}
3. 자연수를 입력받아 아래와 같은 사각형을 출력하는 프로그램을 작성하시오. 주어지는 수는 100이하의 자연수이다. (함수를 작성하시오.)
입력 예
3
출력 예
1 2 3
2 4 6
3 6 9
#include <stdio.h>
void name(int num){
int i, j, cnt=1;
for(i=1;i<=num;i++){
for(j=1;j<=num;j++){
printf("%d ", j*cnt);
}
printf("\n");
cnt++;
}
}
int main(){
int num;
scanf("%d", &num);
name(num);
return 0;
}
※ num이 3이라고 가정하면 cnt=1일때 j*cnt는 j*1이므로 1 2 3이 출력되고 cnt++이 계산되서 cnt=2가 됩니다. 그러면 j*cnt는 j*2가 되므로 2 4 6이 출력되고 cnt++에 의해 cnt=3이 됩니다. 그러면 j*cnt는 j*3이 되므로 3 6 9가 출력이 됩니다.
#include <stdio.h>
int cal(int a, int b){
int result;
b = b * b;
a = a * a;
if(a < b){
return b - a;
}
else{
return a - b;
}
}
int main(){
int a, b;
scanf("%d %d", &a, &b);
printf("%d", cal(a, b));
return 0;
}
5. 3명 학생의 3과목 점수를 입력받아 각 과목별 학생별 총점을 출력하는 구조화된 프로그램을 작성하시오.
입력 예
50 80 100
96 88 66
100 85 90
출력 예
50 80 100 230
96 88 66 250
100 85 90 275
246 253 256 755
// 챕터가 함순데 함수를 사용하지 않고 만들어졌네요...(?)
#include <stdio.h>
int main(){
int i, j, array[4][4] = {0};
for(i=0;i<3;i++){
scanf("%d %d %d", &array[i][0], &array[i][1], &array[i][2]);
array[i][3] = array[i][0] + array[i][1] + array[i][2];
}
for(j=0;j<4;j++){
array[3][j] = array[0][j] + array[1][j] + array[2][j];
}
for(i=0;i<4;i++){
for(j=0;j<4;j++){
printf("%d ", array[i][j]);
}
printf("\n");
}
return 0;
}
※ 5번은... 집가서 함수를 써서 다른 방법으로 다시 작성해 보겠습니다...