C Primer Plus 7
控制语句——分支与跳转
(1)编写一个程序,读取八个整数,并存入整型数组,倒序打印。
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main(void)
{
int data[8];
printf("Enter the 8 integer data (seperate by blank):\n");
for(int i=0;i<8;i++)
{
data[i]=getchar() - 48;
}
printf("Ok,the reverse data is:");
for(int i=7;i>=0;i--)
{
printf("%d",data[i]);
}
printf("Well done!\n");
system("pause");
return 0;
}
(2)编写一个程序,读取输入,读到#字符时停止,然后报告读取的空格数,换行符,和其它字符的数量。
#include<stdio.h>
#include<windows.h>
int main(void)
{
char ch;
int blank=0;
int endline=0;
int others=0;
while((ch = getchar())!='#')
{
if(ch==' ')
blank++;
else if(ch=='\n')
endline++;
else
others++;
}
printf("%d blank,%d endline,%d others",blank,endline,others);
system("pause");
return 0;
}
(3)编写程序,读取整数,直到用户输入0。程序报告用户输入的偶数的个数,这些偶数的平均值,奇数的个数以及基数的平方和。
#include<stdio.h>
#include<windows.h>
int main(void)
{
int odd_sum=0;
int even_sum=0;
int odd_count=0;
int even_count=0;
int odd_ave,even_ave;
int input;
while(scanf("%d",&input))
{
if(input==0)
break;
if(input%2==0)
{
even_sum+=input;
even_count++;
even_ave=even_sum/even_count;
}
else{
odd_sum+=input;
odd_count++;
odd_ave=odd_sum/odd_count;
}
}
printf("Have %d even number,average is %d.\n",even_count,even_ave);
printf("Have %d odd number,average is %d.\n",odd_count,odd_ave);
printf("Well done!\n");
system("pause");
return 0;
}
(4)使用if-else语句,读取输入,读到#字符为止。并用‘!’替换‘。’,用‘!!’替换‘!’。
#include<stdio.h>
#include<windows.h>
int main(void)
{
int counter = 0;
char ch;
while((ch=getchar())!='#')
{
if (ch=='!')
{
printf("!!");
counter++;
}
else if (ch=='.')
{
printf("!");
counter++;
}
else{
printf("%c",ch);
}
}
printf("\nThe total replace time is%d",counter);
printf("Done!\n");
system("pause");
return 0;
}
(5)编写一个程序,读取输入,读到#结束,并报告ei出现的次数。
#include<stdio.h>
#include<windows.h>
#include<conio.h>
int main(void)
{
int counter=0;
int matching=0;
char ch;
while((ch = getchar())!='#')
{
if (ch=='e')
{
matching=1;
(6)编写一个程序,提升用户输入1周工作的小时数,然后打印工资总额、税金和净收入。