12.1
#include <stdio.h>
void critic(int*);
int main(void)
{
int units;
printf("How many pounds to a firkin of butter?\n");
scanf("%d", &units);
while ( units != 56)
critic(&units);
printf("You must have looked it up!\n");
return 0;
}
void critic(int*units)
{
printf("No luck, chummy. Try again.\n");
scanf("%d", units);
}
12.2
//pe12-2a.h
void set_mode(int);
void get_info(void);
void show_info(void);
//pe12-2b.c
#include<stdio.h>
#include"pe12-2a.h"
int main(void)
{
int mode;
printf("Enter 0 for metric mode,1for US mode: ");
scanf("%d",&mode);
while(mode>=0)
{
set_mode(mode);
get_info();
show_info();
printf("Enter 0 for metric mode,1for US mode: ");
printf("(-1 to quit): ");
scanf("%d",&mode);
}
printf("Done.\n");
return 0;
}
//pe12-2c.c
#include<stdio.h>
double distance,fuel;
int mode;
void set_mode(int i)
{
mode=i;
}
void get_info(void)
{
if (mode==0)
{
printf("Enter the distance traveled in kilometers: ");
scanf("%lf",&distance);
printf("Enter the fuel consumed in liters: ");
scanf("%lf",&fuel);
}
else if(mode==1)
{
shit:
printf("Enter the distance traveled in miles: ");
scanf("%lf",&distance);
printf("Enter the fuel consumed in gallon: ");
scanf("%lf",&fuel);
}
else
{
printf("Ivalid mode specified.Mode 1(US)used.\n");
goto shit;
}
}
void show_info(void)
{
if(mode==0)
printf("Fuel consumption is %.2f libters per 100km\n",fuel/distance*100);
else
printf("Fuel consumption is %.1f miles per gallon\n",distance/fuel);
}
12.3
#include<stdio.h>
int set_mode(int);
void get_info(int,double*,double*);
void show_info(int,double*,double*);
int main(void)
{
int mode;
double distance,fuel;
printf("Enter 0 for metric mode,1for US mode: ");
scanf("%d",&mode);
while(mode>=0)
{
mode=set_mode(mode);
get_info(mode,&distance,&fuel);
show_info(mode,&distance,&fuel);
printf("Enter 0 for metric mode,1for US mode: ");
printf("(-1 to quit): ");
scanf("%d",&mode);
}
printf("Done.\n");
return 0;
}
int set_mode(int i)
{
return i;
}
void get_info(int mode,double*distance,double*fuel)
{
if (mode==0)
{
printf("Enter the distance traveled in kilometers: ");
scanf("%lf",distance);
printf("Enter the fuel consumed in liters: ");
scanf("%lf",fuel);
}
else if(mode==1)
{
shit:
printf("Enter the distance traveled in miles: ");
scanf("%lf",distance);
printf("Enter the fuel consumed in gallon: ");
scanf("%lf",fuel);
}
else
{
printf("Ivalid mode specified.Mode 1(US)used.\n");
goto shit;
}
}
void show_info(int mode,double*distance,double*fuel)
{
if(mode==0)
printf("Fuel consumption is %.2f libters per 100km\n",*fuel/(*distance)*100);
else
printf("Fuel consumption is %.1f miles per gallon\n",*distance/(*fuel));
}
12.4
#include<stdio.h>
void shit(void);
int main(void)
{
int i;
for(i=0;i<50;i++)
{
printf("this is %d times loop\n",i+1);
shit();
}
return 0;
}
void shit(void)
{
static i=0;
printf("the function is used %d times\n",++i);
}
12.5
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int i,j,k;
int a[100];
srand(time(0));
for(i=0;i<100;i++)
a[i]=rand()%10+1;
for(i=0;i<100;i++)
{
if(i%10==0) puts("");
printf("%5d",a[i]);
}
puts("");
puts("");
for(i=0;i<99;i++)
for(j=i;j<99;j++)
if(a[i]<a[j+1])
{
k=a[i];
a[i]=a[j+1];
a[j+1]=k;
}
for(i=0;i<100;i++)
{
if(i%10==0) puts("");
printf("%5d",a[i]);
}
return 0;
}
12.6
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i,j,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10;
for(i=0;i<10;i++)
{
i1=i2=i3=i4=i5=i6=i7=i8=i9=i10=0;
srand(i);
printf("the seed is %d\n",i);
for(j=0;j<1000;j++)
switch(rand()%10+1)
{
case 1:
i1++;
break;
case 2:
i2++;
break;
case 3:
i3++;
break;
case 4:
i4++;
break;
case 5:
i5++;
break;
case 6:
i6++;
break;
case 7:
i7++;
break;
case 8:
i8++;
break;
case 9:
i9++;
break;
case 10:
i10++;
break;
}
printf("1 %d times ,2 %d times ,3 %d times ,4 %d times ,5 %d times,\n\
6 %d times ,7 %d times ,8 %d times ,9 %d times ,10 %d times.\n",i1,i2,i3,i4,i5,i6,i7,i8,i9,i10);
}
return 0;
}
12.7
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void roll_n_dice(int,int);
int main(void)
{
int i;
int dice,sets,sides;
srand((unsigned int) time(0));
printf("Enter the number of sets; enter q to stop.\n");
while (scanf("%d", &sets) == 1)
{
printf("How many sides and how many dice?\n");
scanf("%d %d",&sides,&dice);
printf("Here are %d sets of %d %d-sided throws.\n",sets,dice,sides);
for(i=0;i<sets;i++)
{
roll_n_dice(dice, sides);
if(i==14)puts("");
}
puts("");
printf("Enter the number of sets; enter q to stop.\n");
}
return 0;
}
void roll_n_dice(int dice, int sides)
{
int d;
int total=0;
if (sides<2)
printf("Need at least 2 sides.\n");
if (dice<1)
printf("Need at least 1 die.\n");
for (d=0;d<dice;d++)
total+=rand()%sides+1;
printf(" %d",total);
}
12.8
#include<stdio.h>
#include<stdlib.h>
int *make_array(int elem,int val);
void show_array(const int ar[],int n);
int main(void)
{
int *pa;
int size,value;
printf("Enter the number of elements: ");
scanf("%d",&size);
while(size>0)
{
printf("Enter the initialization value: ");
scanf("%d",&value);
pa=make_array(size,value);
if(pa)
{
show_array(pa,size);
free(pa);
}
printf("Enter the number of elements (<1 to quit): ");
scanf("%d",&size);
}
printf("Done.\n");
return 0;
}
int *make_array(int elem,int val)
{
int i;
int*ptr;
ptr=(int *)malloc(elem*sizeof(int));
for(i=0;i<elem;i++)
ptr[i]=val;
return ptr;
}
void show_array(const int*ar,int n)
{
int i;
for(i=0;i<n;i++)
{
if(i%8==0)puts("");
printf(" %d",ar[i]);
}
puts("");
}
分享到:
相关推荐
C Primer Plus 第五版第九章答案,自己编写可以成功运行
( C Primer Plus(第五版)中文版课后编程题全解,非常全,亲测可用
C Primer Plus(第五版)中文版.txt fhnfdjjy
c primer plus 第五版课后习题答案
c++ primer plus 第五版课后习题答案
C Primer Plus(第五版)中文版,学习C语言必备,讲的特别详细
C++PrimerPlus第五版习题参考答案
《C Primer Plus》第六版 第十一章编程练习答案,亲测编译通过
C Primer Plus第6版编程练习答案.pdf
c入门必看的c primer plus ,其课后练习题也是很不错的。
《C Primer Plus》第六版 第十二章编程练习答案,亲测编译运行通过!
C Primer Plus 第五版 PDF书和习题大全 http://download.csdn.net/source/2933780 http://download.csdn.net/source/2933786 http://download.csdn.net/source/2933792 http://download.csdn.net/source/2933793
c primer plus 第六版 中文版 源代码+勘误+习题答案,从官方处获得,因为官网需注册很麻烦,所以索性上传,与大家分享。 共三部分,针对第六版,含课后习题,源代码,书中勘误。
通过学习《C Primer Plus(第五版)中文版》,你将奠定坚实的C编程基础。 与以前的版本一样,作者的目标仍旧是为读者提供一本入门性、条理清晰、见解深刻的C语言教程。作者把编程概念和C语言的细节很好地融合在一起...
C Primer Plus (第五版)中文版——第 8 章 编程练习参考程序
C++Primer Plus(第6版)中文版编程练习答案--第四章.pdf
c++ primer plus 课后编程练习的完整答案 PDF文件.
C++ Primer Plus 编程练习源码工程 第12章 ,这是本人自己学习书籍时写的编程练习的源码工程,供大家参考交流。
本书是c++ primer plus第五版的源代码,以及好多高手的编程心路沥程,不得不看!! 听君一席话胜读十年书!
《C++ Primer Plus第6版中文版》学习笔记(第十章) 红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的