C Primer Plus chapter 7 编程练习

test1

#include<stdio.h>

int main()
{
	int i=0, j=0, k=0;
	char word;

	while ((word = getchar()) !='#')
	{
		if (word == ' ')
			i++;
		else if (word == '\n')
			j++;
		else
			k++;
	}
	printf("空格数%d,换行数%d,其他字符数%d\n", i, j,k);

	return 0;
}

test2

#include<stdio.h>
#include<string.h>

int main(void)
{
	int i = 0;
	char word;
	printf("请输入字符,输入#结束:\n");
	while ((word = getchar()) != '#')
	{
		if (i++ % 8 == 0)
			printf("\n");
		if(word=='\n')
			printf("'\n'-%d\t",word);
		else if (word == '\t')
			printf("'\t'-%d\t",word);
		else
			printf("%c-%d\t",word,word);
	}

	return 0;
}

test3

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void)
{
	int i = 0, j = 0;
	int sum1 = 0, sum2 = 0;
	float ave1 = 0, ave2 = 0;
	int word;
	printf("请输入整数,输入0结束\n");
	while ((scanf("%d",&word)!= 0)&&word)
	{
		if ((word % 2) == 0)
		{
			i++;
			sum1 += word;
		}
		else
		{
			j++;
			sum2 += word;
		}
	}
	if (i != 0)
	{
		ave1 = sum1 / i;
		printf("偶数个数:%d,偶数平均值:%f\n", i, ave1);
	}
	if (j != 0)
	{
		ave2 = sum2 / j;
		printf("奇数个数:%d,奇数平均值:%f\n", j, ave2);
	}
	printf("结束\n");
	return 0;
}

test4

#include<stdio.h>

int main(void)
{
	int j = 0, k = 0;
	char word;
	while ((word= getchar()) != '#')
	{
		if (word== '.')
		{
			printf("!");
			j++;
		}
		 else if (word == '!')
		{
			printf("!!");
			k++;
		}
		else
			printf("%c", word);
	}
	printf("\n替换句号%d次,替换感叹号%d次\n",j,k);
	return 0;
}

test5

#include<stdio.h>

int main(void)
{
	int j = 0, k = 0;
	char word;
	while ((word = getchar()) != '#')
	{
		switch (word)
		{
		case '.':
		{
			printf("!");
			j++;
			break;
		}
		case '!':
		{
			printf("!!");
			k++;
			break;
		}
		default:
			printf("%c", word);
		}
	}
	printf("\n替换句号%d次,替换感叹号%d次\n", j, k);
	return 0;
}

test6

#include<stdio.h>

int main(void)
{
	int i=0;
	char word,agin='a';
	while ((word = getchar()) != '#')
	{
		if (agin == 'e' && word == 'i')
			i++;
		agin = word;
	}
	printf("\nei出现%d次\n",i);
	return 0;
}

test7

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define S 40
#define M 1000

int main(void)
{
	int hour,sum,taxe,income;

	printf("请输入一周工作的小时数:");
	scanf("%d", &hour);
	printf("工资总额| 税金 |净收入\n ");
	if (hour <= S)
	{
		sum = hour * M;
		taxe = 300 * 0.15 + 150 * 0.2 + (sum - 450) * 0.25;
		income = sum - taxe;
		printf("%d    %d    %d",sum,taxe,income);
	}
	if (hour > S)
	{
		sum = ((hour-40)*1.5 +40)*1000;
		taxe = 300 * 0.15 + 150 * 0.2 + (sum - 450) * 0.25;
		income = sum - taxe;
		printf("%d    %d    %d", sum, taxe, income);
	}
	return 0;
}

test8

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define S 40

int main(void)
{
	int number, hour;
	float sum, taxe, income;
	int i, j, k;
	float m;

	for(i=0;i<66;i++)
		printf("*");
	printf("\nEnter the number corresponding to the desired pay rate or action:");
	printf("\n1) $8.75/hr				2) $9.33/hr");
	printf("\n3) $10.00/hr				4) $11.20/hr");
	printf("\n5) quit\n");
	for (i = 0; i < 66; i++)
		printf("*");
	printf("\n");
	
	for(;1>0;)
	{
		scanf("%d", &number);
		if (number == 1)
		{
			m = 8.75;
			break;
		}
		if (number == 2)
		{
			m = 9.33;
			break;
		}
		if (number == 3)
		{
			m = 10.00;
			break;
		}
		if (number == 4)
		{
			m = 11.20;
			break;
		}
		if (number == 5)
		{
			break;
		}
		if (number<1|| number> 5)
		{
			printf("please enter again(1-5):\n");
		}
	}

	while (number > 0 && number < 5)
	{
		printf("\nplease enter your worked hour:");
		scanf("%d", &hour);
		printf("\n工资总额| 税金 |净收入\n ");
		if (hour <= S)
		{
			sum = hour * m;
			if (sum < 300)
				taxe = sum * 0.15;
			else if (sum > 300 && sum < 450)
				taxe = 300 * 0.15 + (sum - 300) * 0.2;
			else
				taxe = 300 * 0.15 + 150 * 0.2 + (sum - 450) * 0.25;
			income = sum - taxe;
			printf("%.3f % .3f % .3f\n", sum, taxe, income);
		}
		if (hour > S)
		{
			sum = ((hour - 40) * 1.5 + 40) * m;
			if (sum < 300)
				taxe = sum * 0.15;
			else if (sum > 300 && sum < 450)
				taxe = 300 * 0.15 + (sum - 300) * 0.2;
			else
				taxe = 300 * 0.15 + 150 * 0.2 + (sum - 450) * 0.25;
			income = sum - taxe;
			printf("%.3f % .3f % .3f\n", sum, taxe, income);
		}
		break;
	}
	return 0;
}

test9

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int sh(a);

int main(void)
{
	int num;

	printf("请输入一个正整数:");
	scanf("%d",&num);
	if (num > 1)
	{
		printf("小于或等于该正整数的素数为:\n");
		sh(num);
	}
	printf("Done\n");
	return 0;
}

int sh(a)
{
	int x = 0;
	int i = 0;
	for (x = 2; x <=a; x++)    
	{
		for (i = 2; i <= x; i++)  
		{
			if (x % i == 0)   
				break;
		}
		if (x == i)   
		{
			printf("%d ", x);
		}
	}
	printf("\n");
	return 0;
}

test10

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define A1 17850
#define A2 23900
#define A3 29750
#define A4 14875

int main(void)
{
	int a;
	float taxe, income;
	float m;
	while (1==1)
	{
		printf("单身:1\n户主:2\n已婚,共有:3\n已婚,离异:4\n");
		printf("请输入你的类别(输入0结束):");
		scanf("%d", &a);
		if (a == 0)
			break;
		switch (a)
		{
		case 1:
			m = A1;
			break;
		case 2:
			m = A2;
			break;
		case 3:
			m = A3;
			break;
		case 4:
			m = A4;
			break;
		default:
			printf("\n请重新输入(1-4)\n\n");
			break;
		}
		if (a<5&&a>0)
		{
			printf("请输入你的收入:");
			scanf("%f", &income);
			if (income <= m)
				taxe = income * 0.15;
			if (income > m)
				taxe = m * 0.15 + (income - m) * 0.28;
			printf("你应缴纳税金为:%f\n", taxe);
		}
	}
	return 0;
}

test11

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define YJ 2.05
#define TC 1.15
#define HLB 1.09
#define Y1 6.5
#define Y2 14
#define Y3 0.5

int main(void)
{
	int a, b, c;
	double sum, zc, yf, scfy, moe;
	double i = 0, j = 0, k = 0;
	char ch;
	printf("物品售价\n");
	printf("洋蓟:%f,甜菜:%f,胡萝卜:%f\n", YJ, TC, HLB);
	printf("即输入a的响应是让用户输入洋蓟的磅数,b是甜菜的磅数,c是胡萝卜的磅数,q是退出订购\n请输入字符:");
	while ((ch = getchar()) != 'q')
	{
		switch (ch)
		{
		case 'a':
			printf("请输入洋蓟的磅数:");
			scanf("%lf", &i);
			continue;
		case 'b':
			printf("请输入甜菜的磅数:");
			scanf("%lf", &j);
			continue;
		case 'c':
			printf("请输入胡萝卜的磅数:");
			scanf("%lf", &k);
			continue;
		default:
			printf("请输入字符:");
			break;
		}
		//printf("请输入字符:");
	}
	sum = i + j + k;//累计重量
	if (sum <= 5)//运费
		yf = Y1;
	if (sum > 5 && sum <= 20)
		yf = Y2;
	if (sum > 20)
		yf = 14 + 0.5 * (sum - 20);
	for (b = 0; b < 80; b++)
		printf("*");
	printf("\n订购的重量\n洋蓟:%.3lf,甜菜:%.3lf,胡萝卜:%.3lf", i, j, k);
	scfy = YJ * i + TC * j + HLB * k;//蔬菜费用
	a = scfy / 100;
	zc = 5.0 * a;//折扣
	printf("\n订购的蔬菜费用:%.3lf\n", scfy);
	printf("运费及包装费:%.3lf\n", yf);
	printf("订单的总费用:%.3lf\n", (yf + scfy));
	printf("折扣:%.3lf\n", zc);
	moe = yf + scfy - zc;
	printf("所有费用总额:%.3lf\n", moe);
	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值