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

来源:互联网 发布:中国青年政治学院 知乎 编辑:程序博客网 时间:2024/04/30 07:59
第一题

#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
原创粉丝点击