쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 10-2
6.
#include <stdio.h>
int main(void) {
int i, j, sum;
int data[3][5] = { {
12, 56, 32, 16, 98
}
, {
99, 56, 34, 41, 3
}
, {
65, 3, 87, 78, 21
}
}
;
for (i = 0; i < 3; i++) {
sum = 0;
for (j = 0; j < 5; j++)
sum += data[i][j];
printf("%d행의 합계: %d\n", i, sum);
}
for (j = 0; j < 5; j++) {
sum = 0;
for (i = 0; i < 3; i++)
sum += data[i][j];
printf("%d열의 합계: %d\n", j, sum);
}
return 0;
}
7.
#include <stdio.h>
int main(void) {
int list[3][10] = {
0
}
;
int value, i;
for (i = 0; i < 10; i++) {
list[0][i] = i;
list[1][i] = i * i;
list[2][i] = i * i * i;
}
printf("정수를 입력하시오:");
scanf("%d", &value);
for (i = 0; i < 10; i++) {
if (value == list[2][i])
printf("%d의 세제곱근은 %d\n", value, i);
}
return 0;
}
8.
#include <stdio.h>
#define N_DATA 10
void get_data(double data[]);
double get_mean(double data[]);
double get_std_dev(double data[], double mean);
int main(void) {
double data[20];
double mean;
get_data(data);
mean = get_mean(data);
printf("평균값은 %f\n", mean);
printf("표준편차값은 %f\n", get_std_dev(data, mean));
return 0;
}
void get_data(double data[]) {
int i;
for (i = 0; i < N_DATA; i++) {
printf("데이터를 입력하시오:");
scanf("%lf", &data[i]);
}
}
double get_mean(double data[]) {
int i;
double sum = 0.0;
for (i = 0; i < N_DATA; i++) {
sum += data[i];
}
return sum / N_DATA;
}
double get_std_dev(double data[], double mean) {
int i;
double sum = 0.0;
for (i = 0; i < N_DATA; i++) {
sum += (data[i] - mean) * (data[i] - mean);
}
return sum / N_DATA;
}
9.
#include <stdio.h>
void get_stat_per_test(int score[][3]) {
int i, k, min, max, sum;
for (k = 0; k < 3; k++) {
min = max = score[0][k];
sum = 0;
for (i = 0; i < 10; i++) {
if (score[i][k] < min)
min = score[i][k];
if (score[i][k] > min)
max = score[i][k];
sum += score[i][k];
}
printf("최대점수=%d\n", max);
printf("최저점수=%d\n", min);
}
}
int main(void) {
int i, k;
int score[10][3];
for (i = 0; i < 10; i++) {
for (k = 0; k < 3; k++) {
score[i][k] = rand() % 100 + 1;
}
}
get_stat_per_test(score);
return 0;
}
10.
(a)
#include <stdio.h>
void vector_add(double x[], double y[], double z[]);
int main(void) {
double x[3] = {
1.0, 2.0, 3.0
}
;
double y[3] = {
1.0, 2.0, 3.0
}
;
double z[3];
vector_add(x, y, z);
return 0;
}
void vector_add(double x[], double y[], double z[]) {
z[0] = x[0] + y[0];
z[1] = x[1] + y[1];
z[2] = x[2] + y[2];
}
(b)
#include <stdio.h>
double vector_dotp(double x[], double y[]);
int main(void) {
double x[3] = {
1.0, 2.0, 3.0
}
;
double y[3] = {
1.0, 2.0, 3.0
}
;
double value;
value = vector_dotp(x, y);
printf("%f\n", value);
return 0;
}
double vector_dotp(double x[], double y[]) {
int i;
double result;
result = 0.0;
for (i = 0; i < 3; i++)
result += x[i] * y[i];
return result;
}
댓글
댓글 쓰기