(1)変数a,bに数字をキーボードから入力し,aのアドレスとaにbを代入した時のアドレスが同じになることを以下のプログラムを完成させて確かめよ.
#include <stdio.h>
void main()
{
int a,b;
int *pa;
printf("a = "); scanf("%d", &a);
printf("b = "); scanf("%d", &b);
pa = &a; /*ポインタ変数へのアドレスの代入*/
printf("ポインタ変数paの値(=aのアドレス)は,%pです¥n", pa);
printf("ポインタ変数paの指している値は,%dです¥n", *pa);
a = b; /*値の代入*/
printf("aにbを代入したときのポインタ変数paの値(=aのアドレス)は,%pです¥n", pa);
printf("aにbを代入したときのポインタ変数paの指している値は,%dです¥n\", *pa);
}
(2)整数型配列に初期値として,(10,20,30,40,50)を設定したとき,全ての要素の値を表示するプログラムをポインタを用いて作成せよ.
#include <stdio.h>
void main()
{
int i;
int a[5] = {10, 20, 30, 40, 50};
int *p;
p = &a[0];
for(i=0; i<5; i++) {
printf(" 配列の %d 番目は%d です¥n", i, *(p+i));
}
}
(3)三つの整数をキーボードから入力すると,その最大値を表示するプログラムを関数を用いて作成せよ.
#include <stdio.h>
int max(int a, int b, int c)
{
int x[3];
int i,y=1;
x[0] = a;
x[1] = b;
x[2] = c;
for(i=0;i<3;i++){
if(y<x[i])
y=x[i];
}
return y;
}
void main()
{
int a,b,c;
printf("aの値を入力してください:"); scanf("%d",&a);
printf("bの値を入力してください:"); scanf("%d",&b);
printf("cの値を入力してください:"); scanf("%d",&c);
printf("三つの整数における最大値:%d¥n", max(a,b,c));
}
(4)実数xの値を入力し,y=5x5-12x4+3x+1を求めるプログラムを作成せよ.
ただし,xn(nは自然数)の値は,関数を自ら定義して計算すること(pow関数使用不可).
#include <stdio.h>
float power(float x, int n)
{
int i;
float y=1.0;
for(i=0;i<n;i++)
y *= x;
return y;
}
float func(float x)
{
float y;
y = 5*power(x,5)-12*power(x,4)+3*power(x,1)+1;
return y;
}
void main()
{
float x;
printf("実数xを入力してください:"); scanf("%f", &x);
printf("関数y=5x^5-12x^4+3x+1の答: %0.3f¥n",func(x));
}