C Primer Plus 第七章 编程练习 1-6题

第一题
#include<stdio.h>
#define Space ' '
#define Eof '#'
#define LineBreak '\n'
int main(void)
{
  int CountSpace = 0;
  int CountLineBreak = 0;
  int Counts = 0;
  char ch;
  ch = getchar();
  while(ch != Eof)
  {
    switch(ch)
    {
      case Space:
        ++CountSpace;
        break;
      case LineBreak:
        ++CountLineBreak;
        break;
      default:
        ++Counts;
     }
    ch = getchar();
  }
  
  printf("%d Space,%d LineBreak,%d chars",CountSpace,CountLineBreak,Counts+CountSpace+CountLineBreak);

 return 0;
}


第二题
#include<stdio.h>
const int Floor = 8;
const int MaxLen = 100;
const char StopChar = '#';
int main(void)
{
  char ch[MaxLen];
  char Letter;
  int CountLetter = 0;

  printf("PLease Input The Letters, '#' To End.\n");
  while((Letter = getchar()) != StopChar)
  {
    ch[CountLetter] = Letter;
    ++CountLetter;
  }

  for(int i = 0 ; i < CountLetter ; ++i)
  {
    printf("%c/%d ",ch[i],ch[i]);
    if((i+1)%Floor == 0)
      printf("\n");
  }

 return 0;
}


第三题
#include<stdio.h>
const int Stop = 0;
int main(void)
{
  int nu;
  int Odd = 0;
  int CountOdd = 0;
  int Even = 0;
  int CountEven = 0;

  printf("Please Input The Number To Test:\n");
  while(scanf("%d",&nu))
  {
    if(nu == Stop)
      break;
    if(nu%2 == 0)
    {
      Odd += nu;
      ++CountOdd;
    }
    if(nu%2 == 1)
    {
      Even += nu;
      ++CountEven;
    }
  }

  printf("We Get %d ODD, Avg Is %.2lf\n",CountOdd,Odd/(double)CountOdd);
  printf("We Get %d Even, Avg Is %.2f\n",CountEven,Even/(double)CountEven);

 return 0;
}


第四题
#include<stdio.h>
#include<string.h>
const char Stop = '#';
const char Symbol_1 = '.';
const char Symbol_2 = '!';
const int MaxLen = 100;
int main(void)
{
  char chs[MaxLen];
  char Letter;
  int Counts = 0;
  int Times = 0;
  printf("Please Input Words To Test:\n");
  while((Letter = getchar()) != Stop)
  {
    if(Letter == Symbol_1)
    {
      chs[Counts] = Symbol_2;
      ++Counts;
      ++Times;
    }
    else
      if(Letter == Symbol_2)
      {
        chs[Counts] = Symbol_2;
        chs[Counts+1] = Symbol_2;
        Counts += 2;
        ++Times;
      }
      else
      {
        chs[Counts] = Letter;
        ++Counts;
      }
  }

  chs[Counts] = '\0';
  printf("%d Times\n",Times);
  printf("%s\n",chs);
 return 0;
}


第五题
#include<stdio.h>
const int Stop = 0;
int main(void)
{
  int nu;
  int Odd = 0;
  int CountOdd = 0;
  int Even = 0;
  int CountEven = 0;

  printf("Please Input The Number To Test:\n");
  while(scanf("%d",&nu) && (nu != Stop))
  {
    int Mid = nu%2;
    switch(Mid)
    {
      case 0:Odd += nu;
             ++CountOdd;
             break;
      case 1:Even += nu;
             ++CountEven;
             break;
    }
  }

  printf("We Get %d ODD, Avg Is %.2lf\n",CountOdd,Odd/(double)CountOdd);
  printf("We Get %d Even, Avg Is %.2f\n",CountEven,Even/(double)CountEven);

 return 0;
}


第六题
#include<stdio.h>
const int MaxLen = 100;
const char Stop = '#';
int main(void)
{
  char Letter;
  char Words[MaxLen];
  int RealLen = 0;
  printf("PLease Input Words To Test:\n");
  while((Letter = getchar()) && (Letter != Stop))
  {
    Words[RealLen] = Letter;
    ++RealLen;
  }

  int Times = 0;
  for(int i = 0 ; i < RealLen ; ++i)
  {
    if(Words[i] == 'e' && Words[i+1] == 'i')
      ++Times;
  }

  printf("We Get %d \"ei\"",Times);

 return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值