c primer plus 第七章

//第一题 
#include<stdio.h>
int main()
{
	int space=0;
	int change_line=0;
	int others=0;
	
	char c;
	c=getchar();
	while(c!='#'){
		if(c==' '){
			space++;
		}else if(c=='\n'){
			change_line++;
		}else{
			others++;
		}
		c=getchar();
	}
	printf("space:%d change_line:%d others:%d",space,change_line,others);
}
//第二题 
#include<stdio.h>
int main()
{
	char ch;
	int cnt=0;
	
	printf("Please enter some characters('#' to quit):\n");
	while((ch=getchar())!='#'){
		printf("%c:%3d",ch,ch);
		cnt++;
		if(cnt%8==0){
			printf("\n");
		}else{
			printf(" ");
		}
	}
	printf("\nDone!");
}
//第三题 
#include<stdio.h>
int main()
{
	printf("Please enter some integer(0 to quit):\n");
	int sum_even=0;
	int sum_odd=0;
	int n_even=0;
	int n_odd=0;

	int number;
	scanf("%d",&number);
	while(number!=0){
		if(number%2==0){
			sum_even+=number;
			n_even++;
		}else{
			sum_odd+=number;
			n_odd++;
		}
		scanf("%d",&number);
	}
	
	printf("even:%d even average:%f odd:%d odd average:%f",n_even,sum_even/n_even*1.0,n_odd,sum_odd/n_odd*1.0);
}
//第四题 
#include<stdio.h>
int main()
{
	char c;
	int cnt=0;
	
	while((c=getchar())!='#'){
		if(c=='.'){
			putchar('!');
			cnt++;
		}else if(c=='!'){
			putchar('!');
			putchar('!');
			cnt++;
		}else{
			putchar(c);
		}
	}
	printf("The sum of change is %d",cnt);
}
//第五题 
#include<stdio.h>
int main()
{
	char c;
	int cnt=0;
	
	while((c=getchar())!='#'){
		switch(c){
			case '.':cnt++;putchar('!');break;
			case '!':cnt++;putchar('!'),putchar('!');break;
			default:putchar(c);
		}
	}
	printf("The sum of change is %d",cnt);
}
//第六题 
#include<stdio.h>
int main()
{
	char c1,c2;
	c1=getchar();
	int cnt=0;
	while((c2=getchar())!='#'){
		if(c1=='e'&&c2=='i'){
			cnt++;
		}
		c1=c2;
	}
	printf("\nn:%d",cnt);
}
//第七题 
#include<stdio.h>
#define basic_salary 10
#define basic_hours 40
#define over_time 1.5
#define first_rate 0.15
#define second_rate 0.20
#define third_rate 0.25
#define rate_limit1 300
#define rate_limit2 450
int main()
{
	printf("Please enter your working time in this week:\n");
	int hours;
	scanf("%d",&hours);
	double salary;
	double income;
	double rates;
	
	if(hours>basic_hours){
		salary=(40+(hours-basic_hours)*over_time)*basic_salary;
	}else{
		salary=hours*basic_salary*1.0;
	}
	
	if(salary<=rate_limit1){
		rates=salary*first_rate;
	}else if(salary<=rate_limit2){
		rates=second_rate*(salary-rate_limit1)+rate_limit1*first_rate;
	}else{
		rates=rate_limit1*first_rate+(rate_limit2-rate_limit1)*second_rate+third_rate*(salary-rate_limit2);
	}
	
	income=salary-rates;
	
	printf("Salary:%f Rates:%f Income:%f\n",salary,rates,income);
}
//第八题 
#include<stdio.h>
#define basic_hours 40
#define over_time 1.5
#define first_rate 0.15
#define second_rate 0.20
#define third_rate 0.25
#define rate_limit1 300
#define rate_limit2 450

double choice(void);
int main()
{
	double basic_salary;
	
	while(basic_salary=choice()){
		printf("Please enter your working time in this week:\n");
		int hours;
		scanf("%d",&hours);
		double salary;
		double income;
		double rates;
		
		if(hours>basic_hours){
			salary=(40+(hours-basic_hours)*over_time)*basic_salary;
		}else{
			salary=hours*basic_salary*1.0;
		}
		
		if(salary<=rate_limit1){
			rates=salary*first_rate;
		}else if(salary<=rate_limit2){
			rates=second_rate*(salary-rate_limit1)+rate_limit1*first_rate;
		}else{
			rates=rate_limit1*first_rate+(rate_limit2-rate_limit1)*second_rate+third_rate*(salary-rate_limit2);
		}
		
		income=salary-rates;
		
		printf("Salary:%f Rates:%f Income:%f\n\n\n",salary,rates,income);
 	}
 	printf("Done!");
}
double choice(void)
{
	int i;
	for(i=0;i<40;i++){
		printf("*");
	}
	
	printf("\n");
	printf("Enter the number corresponding to the desired pay rate or action:\n");
	printf("1)$8.75/hr                                             2)$9.33/hr\n");
	printf("3)$10.00/hr                                           4)$11.20/hr\n");
	printf("5)quit\n");
	
	for(i=0;i<40;i++){
		printf("*");
	}
	printf("\n");
	
	int n;
	scanf("%d",&n);
	double basic_salary;
	switch(n){
		case 1:basic_salary=8.75;break;
		case 2:basic_salary=9.33;break;
		case 3:basic_salary=10.00;break;
		case 4:basic_salary=11.20;break;
		case 5:basic_salary=0.0;break;
		default:printf("Please enter number 1 to 5:");scanf("%d",&n);
	}
	return basic_salary;
}
//第九题 
#include<stdio.h>
#include<math.h>
int main()
{
	printf("Please enter a positive integer:");
	int upper;
	scanf("%d",&upper);
	int i;
	int j;
	if(upper>=2){
		printf("2\n");
	}
	for(i=3;i<=upper;i++){
		int is=0;
		for(j=2;j<=sqrt(i);j++){
			if(i%j==0){
				is=1;
				break;
			}
		}
		if(is==0){
			printf("%d\n",i);
		}
	}
}
//第十题 
#include<stdio.h>
#define under_rate 0.15
#define over_rate 0.28

int choice(void);
int main()
{
	int basic_rate;
	double sum_rates;
	double taxable_income;
	while(basic_rate=choice()){
		printf("Please enter your taxable income:");
		scanf("%lf",&taxable_income);
		if(taxable_income>basic_rate){
			sum_rates=(taxable_income-basic_rate)*over_rate+basic_rate*under_rate;
		}else{
			sum_rates=under_rate*taxable_income;
		}
		printf("The sum of your rates is %f\n\n\n",sum_rates);
	}
	printf("Done!");
}
int choice(void)
{
	int i;
	for(i=0;i<40;i++){
		printf("*");
	}
	
	printf("\n");
	printf("Enter the number corresponding to the desired pay rate or action:\n");
	printf("1)single                                   2)head of a houseehold\n");
	printf("3)married                                               4)divorce\n");
	printf("5)quit\n");
	
	for(i=0;i<40;i++){
		printf("*");
	}
	printf("\n");
	
	int n;
	scanf("%d",&n);
	int basic_rate;
	switch(n){
		case 1:basic_rate=17850;break;
		case 2:basic_rate=23900;break;
		case 3:basic_rate=29750;break;
		case 4:basic_rate=14875;break;
		case 5:basic_rate=0;break;
		default:printf("Please enter number 1 to 5:");scanf("%d",&n);
	}
	return basic_rate;
}
//第十一题 
#include<string.h>
#include<stdio.h>
#define Artichokes 2.05
#define Sugarbeet 1.15
#define Carrots 1.09

void star(void);
void perfrom(void);
int main()
{
	star();
	perfrom();
	star();
	
	char c;
	int n_Artichokes=0;
	int n_Sugarbeet=0;
	int n_Carrots=0;
	double cost_veg=0.0;
	double cost=0.0;
	double discount=0.0;
	int n=0;
	double pake;
	printf("What vegetable do you want?\n");
	while((c=getchar())!='D'){
		int t;
		printf("How much pound do you want?\n");
		switch(c){
			case 'A':scanf("%d",&t);n_Artichokes+=t;break;
			case 'B':scanf("%d",&t);n_Sugarbeet+=t;break;
			case 'C':scanf("%d",&t);n_Carrots+=t;break;
		}
		printf("What else do you want?\n");
		getchar();
	}
	cost_veg=n_Carrots*Carrots+n_Artichokes*Artichokes+n_Sugarbeet*Sugarbeet;
	n=n_Artichokes+n_Sugarbeet+n_Carrots;
	if(cost_veg>100){
		discount=cost_veg*0.05;
	}
	if(n<=5){
		pake=6.5;
	}else if(n<=20){
		pake=14;
	}else{
		pake=14+(n-20)*0.5;
	}
	cost=cost_veg-discount+pake;
	printf("Artichokes:%.2f  Sugarbeet:%.2f  Carrots:%.2f\n",Artichokes,Sugarbeet,Carrots);
	printf("weight:%d  cost_vegetable:%.2f  cost_sum:%.2f\n",n,cost_veg,cost_veg+pake);
	printf("discount:%.2f  pake:%.2f  cost:%.2f\n",discount,pake,cost);
}
void star(void)
{
	int i;
	for(i=1;i<=40;i++){
		printf("*");
	}
	printf("\n");
}
void perfrom(void)
{
	printf("Choose which vegetable you need\n");
	printf("(A)Artichokes      (B)Sugarbeet\n");
	printf("(C)Carrots         (D)quit\n");
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值