/* List6-1 */
#include <stdio.h>
int maxof(int x, int y)
{
if(x>y){
return x;
}else{
return y;
}
}
int main(void)
{
int na, nb;
puts("二つの整数を入力してください。");
printf("整数1:");
scanf("%d", &na);
printf("整数2:");
scanf("%d", &nb);
printf("大きい方はの値は%dです。¥n", maxof(na, nb));
return 0;
}
/* List6-5 */
#include <stdio.h>
double power(double dx, int no)
{
double tmp=1.0;
while(no-->0){
tmp*=dx;
}
return tmp;
}
int main(void)
{
double x;
int n;
printf("実数を入力:");
scanf("%lf", &x);
printf("整数を入力:");
scanf("%d", &n);
printf("%.2fの%d乗は%.2fです。¥n", x, n, power(x, n));
return 0;
}
/* List6-7 */
#include <stdio.h>
void put_stars(int no)
{
while(no-->0){
putchar('*');
}
}
int main(void)
{
int i, ln;
printf("何段ですか:");
scanf("%d", &ln);
for(i=1; i<=ln; i++){
put_stars(i);
putchar('¥n');
}
return 0;
}
/* List6-9 */
#include <stdio.h>
int scan_unit(void)
{
int tmp;
do{
printf("非負の整数を入力してください:");
scanf("%d", &tmp);
if(tmp<0){
puts("¥a負の数を入力しないでください。");
}
}while(tmp<0);
return tmp;
}
int rev_int(int num)
{
int tmp=0;
if(num>0){
do{
tmp=tmp*10+num%10;
num/=10;
}while(num>0);
}
return tmp;
}
int main(void)
{
int nx=scan_unit();
printf("反転した値は%dです。¥n", rev_int(nx));
return 0;
}
/* List6-10 */
#include <stdio.h>
#define NUMBER 5
int tensu[NUMBER];
int top(void);
int main(void)
{
extern int tensu[];
int i;
printf("%d人の点数を入力してください。¥n", NUMBER);
for (i = 0; i < NUMBER; i++) {
printf("%d:", i + 1);
scanf("%d", &tensu[i]);
}
printf("最高点=%d¥n", top());
return (0);
}
/*--- 配列tensuの最大値を返す【関数定義】 ---*/
int top(void)
{
extern int tensu[];
int i;
int max = tensu[0];
for(i = 1; i < NUMBER; i++)
if(tensu[i] > max)
max = tensu[i];
return (max);
}
/* List6-11 */
#include <stdio.h>
#define NUMBER 5
int max_of(int vc[], int no)
{
int i;
int max = vc[0];
for(i = 1; i < no; i++){
if(vc[i] > max){
max = vc[i];
}
}
return max;
}
int main(void)
{
int i;
int eng[NUMBER];
int mat[NUMBER];
int max_e, max_m;
printf("%d人の点数を入力してください。¥n", NUMBER);
for(i = 0; i < NUMBER; i++) {
printf("[%d] 英語:", i + 1);
scanf("%d", &eng[i]);
printf( " 数学:");
scanf("%d", &mat[i]);
}
max_e = max_of(eng, NUMBER);
max_m = max_of(mat, NUMBER);
printf("英語の最高点=%d¥n", max_e);
printf("数学の最高点=%d¥n", max_m);
return (0);
}
/* List6-12 */
#include <stdio.h>
void int_set(int vc[], int no)
{
int i;
for(i = 0; i < no; i++){
vc[i] = 0;
}
}
int main(void)
{
int i;
int ary1[] = {1, 2, 3, 4, 5};
int ary2[] = {3, 2, 1};
int_set(ary1, 5);
int_set(ary2, 3);
for(i = 0; i < 5; i++){
printf("ary1[%d] = %d¥n", i, ary1[i]);
}
for(i = 0; i < 3; i++){
printf("ary2[%d] = %d¥n", i, ary2[i]);
}
return (0);
}
以下のプログラムを作成する。メールの本文に書くのは関数の定義だけでよい。