您的位置:首页 > 编程语言

C Primer Plus 第十二章 编程练习 1-8题

2017-03-09 20:02 381 查看
第1题
#include<stdio.h>
int critic(void);
int main(void)
{
int realResult;
printf("Please Try To Input Any INteger:\n");
scanf("%d",&realResult);
while(realResult != 56)
realResult = critic();
printf("You Are Right.\n");

return 0;
}
int critic(void)
{
int r;
printf("Unlcuk,Tyr Again.\n");
scanf("%d",&r);
return r;
}


第2题
Mode.h
#ifndef MODE_H__
#define MODE_H__
double Lenght = 0;
double Gas = 0;
int Mode = 0;
#endif


12-2.c
#include<stdio.h>
#include<stdbool.h>
#include"Mode.h"
void SetMode(int m);
void GetInfo();
void ShowInfo();
int main(void)
{
while(true)
{
printf("Please Input The Mode(EU/US)");
if(scanf("%d",&Mode) != 1)
break;
SetMode(Mode);
GetInfo();
ShowInfo();
}

return 0;
}

void SetMode(int m)
{
Mode = m;
}
void GetInfo()
{
printf("Please Input The Lenght:");
scanf("%lf",&Lenght);
printf("Please Input The Gas That Had Cost:");
scanf("%lf",&Gas);
}
void ShowInfo()
{
if(Mode == 0)
printf("EU : %.2lf",Gas/Lenght);
if(Mode == 1)
printf("US : %.2lf",Lenght/Gas);
}


第4题
#include<stdio.h>
const int times = 10;
int showTime(void);
int main(void)
{
int ts;
for(int i = 0 ; i < times ; ++i)
ts = showTime();
printf("We Take Thie Funtion %d. \n",ts);

return 0;
}
int showTime(void)
{
static int t = 0;
return ++t;
}


第5题
myRand.h
#ifndef MYRAND_H__

#define MYRAND_H__

long int myRand(void);
void mySeed(long int newSeed);

#endif

myRand.c
#include"myRand.h"
static long int seed = 1;
long int myRand(void)
{
seed = 123 + seed*3;
return (unsigned int)seed%100;
}
void mySeed(long int newSeed)
{
seed = newSeed;
}


12-5.c
#include<stdio.h>
#include<time.h>
#include"myRand.h"
const int nu = 100;
int main(void)
{
mySeed((unsigned int)time(0));  //create a seed by time
int rands[nu];
for(int i = 0 ; i < nu ; ++i)
rands[i] = myRand();

for(int i = 0 ; i < nu ; ++i)   //sort
{
for(int j = i ; j < nu ; ++j)
{
int mid = rands[i];
if(mid > rands[j])
{
rands[i] = rands[j];
rands[j] = mid;
}
}
}

for(int i = 0 ; i < nu ; ++i)  //input
{
printf("%4d",rands[i]);
if((i+1)%10 == 0)
printf("\n");
}

return 0;
}


第6题
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
const int nu = 1000;
int main(void)
{
srand((unsigned int)time(0));  //create seed;
int Tens[10] = {0,0,0,0,0,0,0,0,0,0};
for(int i = 0 ; i < nu ; ++i)
{
int mid = rand()%10 + 1;
switch(mid)
{
case 1:Tens[mid-1] += 1;
break;
case 2:Tens[mid-1] += 1;
break;
case 3:Tens[mid-1] += 1;
break;
case 4:Tens[mid-1] += 1;
break;
case 5:Tens[mid-1] += 1;
break;
case 6:Tens[mid-1] += 1;
break;
case 7:Tens[mid-1] += 1;
break;
case 8:Tens[mid-1] += 1;
break;
case 9:Tens[mid-1] += 1;
break;
case 10:Tens[mid-1] +=
4000
1;
break;
}
}

for(int i = 0 ; i < 10 ; ++i)
printf("%3d : %3d\n",i+1,Tens[i]);

return 0;
}


第8题
#include<stdio.h>
#include<stdlib.h>
int* make_array(int ele , int val);
void show_array(const int* ar , int Len);
int main(void)
{
int* pa;
int size;
int val;
printf("Enter The number of element:");
scanf("%d",&size);
while(size>0)
{
printf("Enter the value.");
scanf("%d",&val);
pa = make_array(size,val);
if(pa)
{
show_array(pa,size);
free(pa);
}
printf("Enter The number of element:");
scanf("%d",&size);
}

printf("Done\n");

return 0;
}
int* make_array(int ele , int val)
{
int* pt =  (int*)malloc(sizeof(int)*ele);
for(int i =  0 ; i < ele ; ++i)
*(pt+i) = val;
return pt;
}
void show_array(const int* ar , int Len)
{
for(int i = 0 ; i < Len ; ++i)
{
printf("%3d",*(ar+i));
if((i+1)%8 == 0)
printf("\n");
}
printf("\n");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: