// 第6章 練習問題1
#include <stdio.h>
void student(void);
int main(void)
{
student();
return 0;
}
void student(void){
int no;
char name[20];
printf("番号?"); scanf("%d", &no);
printf("氏名?"); scanf("%s", name);
printf("番号:%d\n氏名:%s", no, name);
}
// 第6章 練習問題2
#include <stdio.h>
float v(float);
int main(void)
{
float r;
printf("球の半径は?"); scanf("%f", &r);
printf("球の体積=%8.1f\n", v(r));
return 0;
}
float v(float r){
return 4.0*3.14159*r*r*r/3.0;
}
// 第6章 練習問題3
#include <stdio.h>
#include <conio.h>
int main(void)
{
float a, h;
printf("三角形の底辺の長さは?"); scanf("%f", &a);
printf("三角形の高さは?"); scanf("%f", &h);
printf("三角形の面積=%8.1f", s(a, h));
return 0;
}
float s(float a, float h){return a*h/2.0;}
// 第6章 練習問題4
#include <stdio.h>
int total(int);
int main(void)
{
int n;
printf("いくつまでの合計を求めますか?"); scanf("%d", &n);
printf("%dまでの合計=%d\n", n, total(n));
return 0;
}
int total(int n){
int kei=0, i;
for(i=1; i<=n; i++)
kei += i;
return kei;
}
// 第6章 練習問題5
#include <stdio.h>
unsigned long kaijo(long);
int main(void)
{
long n;
printf("nを入力して下さい: ") ; scanf("%d", &n);
printf("%d!=%d\n", n, kaijo(n));
return 0;
}
unsigned long kaijo(long n)
{
unsigned long k=1;
int i;
for(i=1; i<=n; i++){
k *= i;
}
return k;
}
// 第6章 練習問題6
#include <stdio.h>
unsigned long kaijo(long);
int nCr(int, int);
int main(void)
{
int n, r;
printf("n個の中からr個を取出す組合せの数を求めます。\n");
printf("n? "); scanf("%d", &n);
printf("r? "); scanf("%d", &r);
printf("%dC%d=%d\n", n, r, nCr(n, r));
return 0;
}
unsigned long kaijo(long n)
{
unsigned long k=1;
int i;
for(i=1; i<=n; i++){
k *= i;
}
return k;
}
int nCr(int n, int r){
return kaijo(n)/kaijo(r)/kaijo(n-r);
}
// 第6章 練習問題7
#include <stdio.h>
#include <math.h>
float Ave(float [], int);
float Sd(float [], float, int);
int main(void){
float x[100], ave, sd;
int n=0;
printf("データを入力して下さい。\n");
while(1){
printf("%d 件目-> ", n+1);
scanf("%f", &x[n]);
if(x[n]==0)break;
n++;
}
if(n==0){
printf("データは1件も入力されていません。\n");
printf("終了します。\n");
}
else{
ave=Ave(x, n);
sd=Sd(x, ave, n);
printf("件 数=%8d\n", n);
printf("平均値 =%8.1f\n", ave);
printf("標準偏差=%8.1f\n", sd);
}
return 0;
}
float Ave(float x[], int n){
int i;
float kei=0;
for(i=0; i<n; i++){
kei += x[i];
}
printf("合 計=%8.1f\n", kei);
return kei/n;
}
float Sd(float x[], float ave, int n){
int i;
float v=0;
for(i=0; i<n; i++){
v += (x[i]-ave)*(x[i]-ave);
}
return sqrt(v/n);
}
// 第6章 練習問題8
#include <stdio.h>
int Lank(int);
void histgram(int [], int);
int main(void)
{
int lank[5]={0}, n=0, ten, i;
printf("得点を入力して下さい。(終了データ:999)\n");
while(1){
printf("%d 件目 -> ", n+1);
scanf("%d", &ten);
if(ten==999)break;
i=Lank(ten);
if(i==5)
++lank[i-1];
else
++lank[i];
n++;
}
if(n==0){
printf("データは1件も入力されていません。\n");
printf("終了します。\n");
}
else{
histgram(lank, 5);
}
return 0;
}
int Lank(int ten){return ten/20;}
void histgram(int lank[], int n){
int i, j;
char slank[][8]={" 0~ 19","20~ 39","40~ 59","60~ 79","80~100"};
printf("\n 得点ヒストグラム\n\n");
printf("-------------------------------\n");
for(i=0; i<n; i++){
printf("%s %3d ", slank[i], lank[i]);
for(j=0; j<lank[i]; j++){
printf("*");
}
printf("\n");
}
}
// 第8章 練習問題1
int *pa;
float *pb;
char *pc;
// 第8章 練習問題2
(1) xのアドレス
(2) 1000
// 第8章 練習問題3
① &x
② &y
③ *p1+*p2
// 第8章 練習問題4
① %x
② &x
③ &y
// 第8章 練習問題5
#include <stdio.h>
int main(void)
{
int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int *p, kei=0, i;
p=a;
//配列
for(i=0; i<10; i++){
printf("a[%d]=%d\n", i, *p++);
}
//計算
p=a;
for(i=0; i<10; i++){
kei += *p++;
}
printf("合計=%d\n", kei);
return 0;
}
// 第8章 練習問題6
#include <stdio.h>
#include <conio.h>
int main(void)
{
float h[5], *p, w;
int n, i, j;
printf("人数を入力して下さい:"); scanf("%d", &n);
for(i=0; i<n; i++){
printf("%d件目のデータ:", i+1); scanf("%f", &h[i]);
}
p=h;
for(i=0; i<n-1; i++){
for(j=i+1; j<n; j++){
if(p[i]<p[j]){
w=p[i];
p[i]=p[j];
p[j]=w;
}
}
}
printf("\n--降順整列結果--\n");
for(i=0; i<n; i++){
printf("%10.1f\n", *p++);
}
return 0;
}
#include <stdio.h>
//▼▼▼プロトタイプ宣言▼▼▼
int BMI(float tai,float sin);
int main(void)
{
int tai=0,sin=0;
printf("体重[kg]を入力してください-->");
scanf("%d",&tai);
printf("身長[m]を入力してください-->");
scanf("%d",&sin);
magic(float tai,float sin);
//▼▼▼pが1の場合▼▼▼
if(p==1){
printf("BMI値:%f\nおデブちん☆",bmi);
}
//▼▼▼pが2の場合▼▼▼
else if(p==2){
printf("BMI値:%f\n普通",bmi);
}
//▼▼▼pが3の場合▼▼▼
else if(p==3){
printf("BMI値:%f\n痩せすぎ",bmi);
}
return 0;
}
//▼▼▼ユーザ関数本体▼▼▼
float BMI(float tai,float sin)
{
float bmi;
int p;
bmi=tai/(sin*sin);
//▼▼▼入力データが1の場合▼▼▼
if(30>=bmi){
p=1;
}
//▼▼▼入力データが2の場合▼▼▼
else if(30>=bmi && bmi>=18.5){
p=2;
}
//▼▼▼入力データが3の場合▼▼▼
else if(18.5>=bmi){
p=3;
}
//▼▼▼1,2,3どれかの値をmain関数に返す▼▼▼
return p,bmi;
}
#include <stdio.h>
//▼▼▼プロトタイプ宣言▼▼▼
char* magic(int a);
int main(void)
{
int a=0;
printf("1~3の整数型データを入力してください-->");
scanf("%d",&a);
printf("%s",magic(a));
return 0;
}
//▼▼▼ユーザ関数(magic)▼▼▼
char* magic(int a)
{
//▼▼▼x,y,zのメモリ内に書き込み▼▼▼
char* x="イオ" ;
char* y="イオラ";
char* z="イオナズン";
char* p;
//▼▼▼入力データが1の場合▼▼▼
if(a==1){
p=x;
}
//▼▼▼入力データが2の場合▼▼▼
else if(a==2){
p=y;
}
//▼▼▼入力データが3の場合▼▼▼
else if(a==3){
p=z;
}
//▼▼▼pの値(文字列)をmain関数に返す▼▼▼
return p;
}