#include <stdlib.h> void *calloc(size_t num, size_t size) num : 要素の数 size : 各要素のサイズ
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i1, *k1;
/*
int型整数の10個の配列を確保
callocを使用(0で初期化される)
*/
k1 = (int *)calloc(10, sizeof(int));
/*
最初の5個に1から5を代入
*/
for (i1 = 0; i1 < 5; i1++)
k1[i1] = i1 + 1;
for (i1 = 0; i1 < 10; i1++)
printf("%2d ", k1[i1]);
printf("\n");
/*
配列のサイズを15に変更(10個目までのデータは保存される)
*/
k1 = (int *)realloc((void *)k1, 15*sizeof(int)); /* intを15個 */
for (i1 = 0; i1 < 15; i1++)
printf("%2d ", k1[i1]);
printf("\n");
/*
領域の解放
*/
free((void *)k1);
/*
int型整数の10個の配列を確保
mallocを使用(内容は未定)
*/
k1 = (int *)malloc(10*sizeof(int)); /* intを10個 */
for (i1 = 0; i1 < 10; i1++)
printf("%2d ",k1[i1]);
printf("\n");
return 0;
}
(出力)
1 2 3 4 5 0 0 0 0 0
1 2 3 4 5 0 0 0 0 0 0 33 1627793056 1627793056 0
1627793104 1627793104 3 4 5 0 0 0 0 0
#include <stdio.h>
int main()
{
int i1, n, sum = 0, *x;
/*
データの数
*/
printf("データの数は? ");
scanf("%d", &n);
/*
領域の確保
*/
x = new int [n];
/*
データの入力と和の計算
*/
for (i1 = 0; i1 < n; i1++) {
printf(" %d 番目のデータを入力してください ", i1+1);
scanf("%d", &x[i1]);
sum += x[i1];
}
printf("和 = %d\n", sum);
/*
領域の開放
*/
delete [] x;
return 0;
}
(出力)
データの数は? 3
1 番目のデータを入力してください 1
2 番目のデータを入力してください 2
3 番目のデータを入力してください 3
和 = 6
import java.io.*;
public class Test {
public static void main(String args[])
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int i1, n, sum = 0, x[];
try {
/*
データの数
*/
System.out.print("データの数は? ");
n = Integer.parseInt(in.readLine());
/*
領域の確保
*/
x = new int [n];
/*
データの入力と和の計算
*/
for (i1 = 0; i1 < n; i1++) {
System.out.print(" " + (i1+1) + " 番目のデータを入力してください ");
x[i1] = Integer.parseInt(in.readLine());
sum += x[i1];
}
System.out.println("和 = " + sum);
}
catch (IOException ignored) {}
}
}
(出力)
データの数は? 3
1 番目のデータを入力してください 1
2 番目のデータを入力してください 2
3 番目のデータを入力してください 3
和 = 6
#include <stdio.h>
int main()
{
int i1, i2, m, n, *mean, **ten;
/*
データの数
*/
printf("クラスの人数は? ");
scanf("%d", &n);
printf("科目の数は? ");
scanf("%d", &m);
/*
領域の確保
*/
ten = new int * [n];
mean = new int [m];
for (i1 = 0; i1 < m; i1++)
mean[i1] = 0;
/*
データの入力と和の計算
*/
for (i1 = 0; i1 < n; i1++) {
ten[i1] = new int [m]; // 学生毎に科目数を変えることも可能
printf(" %d 番目の学生\n", i1+1);
for (i2 = 0; i2 < m; i2++) {
printf(" %d 番目の科目の点数は? ", i2+1);
scanf("%d", &ten[i1][i2]);
mean[i2] += ten[i1][i2];
}
}
/*
平均の出力
*/
printf("各科目の平均点は以下の通りです\n ");
for (i1 = 0; i1 < m; i1++)
printf(" %d", mean[i1]/n);
printf("\n");
/*
領域の開放
*/
for (i1 = 0; i1 < n; i1++)
delete [] ten[i1];
delete [] ten;
delete [] mean;
return 0;
}
(出力)
クラスの人数は? 2
科目の数は? 3
1 番目の学生
1 番目の科目の点数は? 10
2 番目の科目の点数は? 20
3 番目の科目の点数は? 30
2 番目の学生
1 番目の科目の点数は? 40
2 番目の科目の点数は? 50
3 番目の科目の点数は? 60
各科目の平均点は以下の通りです
25 35 45
import java.io.*;
public class Test {
public static void main(String args[])
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int i1, i2, m, n, mean[], ten[][];
try {
/*
データの数
*/
System.out.print("クラスの人数は? ");
n = Integer.parseInt(in.readLine());
System.out.print("科目の数は? ");
m = Integer.parseInt(in.readLine());
/*
領域の確保
*/
ten = new int [n][m];
// ten = new int [n][0]; 行毎に列数を変えたい場合
mean = new int [m];
for (i1 = 0; i1 < m; i1++)
mean[i1] = 0;
/*
データの入力と和の計算
*/
for (i1 = 0; i1 < n; i1++) {
// ten[i1] = new int [m]; 行毎に列数を変えたい場合
System.out.println(" " + (i1+1) + " 番目の学生");
for (i2 = 0; i2 < m; i2++) {
System.out.print(" " + (i2+1) + " 番目の科目の点数は? ");
ten[i1][i2] = Integer.parseInt(in.readLine());
mean[i2] += ten[i1][i2];
}
}
/*
平均の出力
*/
System.out.print("各科目の平均点は以下の通りです\n ");
for (i1 = 0; i1 < m; i1++)
System.out.print(" " + mean[i1]/n);
System.out.print("\n");
}
catch (IOException ignored) {}
}
}
(出力)
クラスの人数は? 2
科目の数は? 3
1 番目の学生
1 番目の科目の点数は? 10
2 番目の科目の点数は? 20
3 番目の科目の点数は? 30
2 番目の学生
1 番目の科目の点数は? 40
2 番目の科目の点数は? 50
3 番目の科目の点数は? 60
各科目の平均点は以下の通りです
25 35 45
| ホームページ | 目次 | 演習解答例目次 | 付録目次 | 索引 |