C Primer Plus 第十二章程序清单……2015.5.10

来源:互联网 发布:汕头淘宝村地址 编辑:程序博客网 时间:2024/05/18 00:52

C Primer Plus

          第五版

第十二章  程序清单

#include<stdio.h>
int main()
{
int x=30;
printf("x in outer block:%d\n",x);
{
int x=77;
printf("x in inner block:%d\n",x);
}
   printf("x in outer block:%d\n",x);
   while(x++<33)
   {
    int x=100;
    x++;
    printf("x in while loop:%d\n",x);
   }
   printf("x in outer loop:%d\n",x);
   return 0;

2、
#include <stdio.h>
int main ()
{
   int n = 10;


   printf ("Initially, n = %d \n", n);
   for (int n = 1; n < 3; n++)
      printf ("loop 1: n = %d \n",n);
   printf ("After loop 1, n = %d \n", n);
   for (int n = 1; n < 3; n++)
   {
      printf ("loop 2 index n = %d \n", n);
      int n = 30;
      printf ("loop 2: n = %d \n",n);
      n++;
   }
   printf ("After loop 2, n = %d \n",n);
   return 0;

程序清单12.3
#include<stdio.h>
void trysat(void);
int main(void)
{
int count;
for(count=1;count<=3;count++)
{
printf("Here comes lterration%d:


\n",count);
trysat();
}
return 0;

void trysat(void)
{
int fade=1;
static int stay=1;
printf("fade=%d and stay=%d\n",fade++,stay++);
}
程序清单12.4
#include<stdio.h>
int units=0;
void critic(void);
int main(void)
{
extern int units;
printf("how many pounds to a firkin of butter?


\n");
scanf("%d",&units);
while(units!=56)
  critic();
printf("You must have looked it up! %d 


\n",units);
return 0;
}
void critic(void)
{
printf("Noluck");
scanf("%d",&units);
}
#include<stdio.h>
void report_count();
void accumulate(int k);
int count=0;
int main(void)
{
int value;
register int i;
printf("Enter a positive integer:");
while(scanf("%d",&value)==1&&value>0)
{
++count;
for(i=value;i>=0;i--)
 accumulate(i);
printf("Enter a positive integer ");
}
report_count();
return 0;
}
void report_count()
{
printf("Loop executed %d times\n",count);
}
#include<stdio.h>
extern int count;
static int total=0;
void accumulate(int k);
void accumulate(int k)
{
static int subtotal=0;
if(k<=0)
{
printf("loop cycle:%d\n",count);
printf("subtotal:%d; total:%d


\n",subtotal,total);
subtotal=0;
}
else
{
subtotal+=k;
total+=k;
}
}
程序清单12.7
static unsigned long int next=1;
int rand0(void)
{
next=next*1103515245+12345;
return (unsigned int)(next/65536)%32768;
}


程序清单12.8
#include<stdio.h>
extern int rand0(void);
int main(void)
{
int count;
for(count=0;count<5;count++)
   printf("%hd\n",rand0());
   return 0;
}
程序清单12.9
#include<stdio.h>
extern void srand1(unsigned int x);
extern int rand1(void);
int main(void)
{
int count;
unsigned seed;
printf("Please enter your choice for seed.\n");
while(scanf("%u",&seed)==1)
{
srand1(seed);
for(count=0;count<5;count++)
printf("%hd\n",rand1());
printf("Please enter next seed\n");
}
printf("Done\n");
return 0;
}
程序清单12.10
static unsigned long int next=1;
int rand1(void)
{
next=next*1103515245+12345;
return (unsigned int)(next/65536)%32768;
}
void srand1(unsigned int seed)
{
next=seed;
}
程序清单9.11
#include"diceroll.h"
#include<stdio.h>
#include<stdlib.h>
int roll_count=0;
static int rollem(int sides)
{
int roll;
roll=rand()%sides+1;
++roll_count;
return roll;
}
int roll_n_dice(int dice,int sides)
{
int d;
int total=0;
if(sides<2)
{
printf("Need at least 2 sides.\n");
return -2;
}
if(dice<1)
{
printf("Need at least 1 die.\n");
return -1;
}
for(d=0;d<dice;d++)
  total+=rollem(sides);
return total;
}
程序清单9.12
extern int roll_count;
int roll_n_dice(int dice,int sides);
程序清单9.13
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include"diceroll.h"


int main(void)
{
int dice,roll;
int sides;
srand((unsigned int)time(0));
printf("Enter the number of sides per die.0 to 


stop.\n");
while(scanf("%d",&sides)==1&&sides>0)
{
printf("How many dice?\n");
scanf("%d",&dice);
roll=roll_n_dice(dice,sides);
printf("You have rolled a %d using %d %d 


sided dice.\n",roll,dice,sides);
printf("How many sides?\n");
}
printf("The rollem %d times.\n",roll_count);
printf("GOOD");
return 0;
}
程序清单12.14
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
double *ptd;
int max;
int number;
int i=0;
puts("What is the ?");
scanf("%d",&max);
ptd=(double*)malloc(max*sizeof(double));
if(ptd==NULL)
{
puts("Memory allocation faild\n");
exit(EXIT_FAILURE);
}
puts("Enter the values");
while(i<max&&scanf("%lf",&ptd[i])==1)
    ++i;
printf("Here are your %d entries\n",number=i);
for(i=0;i<number;i++)
{
printf("%7.2f",ptd[i]);
if(i%7==6)
putchar('\n');
}
if(i%7!=0)
putchar('\n');
puts("Done.");
free(ptd);
return 0;
}
1 0
原创粉丝点击