C Primer Plus 第6版 第7章 编程练习

1.读写输入,读到#停止,然后报告读到的 空格 、换行、其他字符数量。

#include<stdio.h>
int main()
{
	char ch = 0;
	int space = 0;
	int line_change = 0;
	int other = 0;
	printf("输入一串字符,#结束\n");
	while ((ch = getchar()) != '#')
	{
		if (ch == ' ')
			space++;
		else if (ch == '\n')
			line_change++;
		else
			other++;
	}
	printf("空格:%d个, 换行:%d个 其他字符:%d个 ", space, line_change, other);
	getchar(); getchar();
	return 0;
}

2.读写输入,读到#停止。 然后打印字符 及其对应的ASCII码(8个一行)

#include<stdio.h>
int main()
{
	char ch = 0;
	int i = 0;
	printf("输入一串字符,#结束\n");
	while ((ch = getchar()) != '#')
	{

		printf("%c:%d ", ch, ch);
		i++;
		if (i % 8 == 0)
			printf("\n");
	}
	
	getchar(); getchar();
	return 0;
}

3.读取整数直至0.报告偶数的个数,平均值,奇数的个数,平均值。

#include<stdio.h>
int main()
{

	int num;
	int o = 0;
	int sum_o = 0;
	int j = 0;
	int sum_j = 0;
	while (scanf_s("%d", &num) && num != 0)
	{
		if (num % 2 == 0)
		{
			o++;
			sum_o += num;
		}
		else
		{
			j++;
			sum_j += num;
		}
	}
	printf("偶数共%d个,平均值%lf\n", o, 1.0*sum_o / o);
	printf("奇数共%d个,平均值%lf\n", j, 1.0*sum_j / j);
	getchar(); getchar();
	return 0;
}

 4.读取直至#,用!替代。 !! 替代! 

然后报告替代的次数。

#include<stdio.h>
int main()
{
	char ch;
	int i = 0, j = 0;

	while ((ch = getchar()) != '#')
	{
		if (ch == '.')
		{
			putchar('!');
			i++;
		}
		else if (ch == '!')
		{
			putchar('!');
			putchar('!');
			j++;
		}
		else
			putchar(ch);
	}

	printf("\n.替换成!:%d次",i);
	printf("\n!替换成!!:%d次",j);
	getchar(); getchar();
	return 0;
}

5. 使用switch 改写4. 略。

6.读取输入直到#,报告ei出现的次数

#include<stdio.h>
int main()
{
	char ch1 = 0, ch2=0;
	int time_ei = 0;
	ch1 = getchar();
	while (ch1 != '#')
	{
		ch2 = ch1;
		ch1 = getchar();
		if (ch1 == 'i')
		{
			if (ch2 == 'e')
				time_ei++;
		}
	}

	printf("ei出现了%d次", time_ei);
	getchar(); getchar();
	return 0;
}

7,8 略

9.输入正整数,显示小于等于它的素数。

#include<stdio.h>
#include<math.h>
int judge_prime(int n)
{
	int i;
	double k;
	k = sqrt(n);
	for (i = 2; i <= k; i++)
	{
	if (n%i == 0) break;
	}
   if (i <= k) 
	   return 0;
	else 
	   return 1;
}
int main()
{

	int num;
	while (scanf_s("%d", &num) && num > 0)
	{
		printf("<= %d的素数有:", num);
		for (int i = 2; i <= num; i++)
			if (judge_prime(i))
				printf("%d ", i);
		printf("\n");
	}
	getchar(); getchar();
	return 0;
}

10、11略

猜你喜欢

转载自blog.csdn.net/qq_41068877/article/details/83443557