第6章 循环

练习题

1.

1 2 4 8 16 32 64 128

2.

9384 938 93 9

3.

5 4 3 2

4.

(c)

5.

(c)

6.

	for (int i = 1; i <= 128; i *= 2)
	{
		printf("%d ", i);
	}

7.

	for (int i = 9384; i > 0; i /= 10)
	{
		printf("%d ", i);
	}

8.

10 5 3 2 1 1 1 1 1······1会陷入死循环

9.

	int i = 10;
	while (i >= 1)
	{
		printf("%d ", i++);
		i /= 2;
	}

10.

以书P88最上面的程序为例

	n = 0;
	sum = 0;
	while (n < 10) {
		scanf("%d", &i);
		if (i == 0)
			goto done;
		sum += i;
		n++;
	done:;
	}

11.

20

12.

	for (d = 2; d * d < n; d++)
	{
		if (n % d == 0)
		{
			break;
		}
	}

13.

	for (n = 0; m > 0; n++, m /= 2)
		;

14.

	if (n % 2 == 0)
	{
		printf("n is even\n");
	}

编程题

1.

#include<stdio.h>

int main(void)
{
	float number, max;

	printf("Enter a number: ");
	scanf_s("%f", &number);

	max = number;
	while (1)
	{
		printf("Enter a number: ");
		scanf_s("%f", &number);

		if (number > max)
		{
			max = number;
		}
		if (number <= 0)
		{
			break;
		}
	}

	printf("The largest number entered was: %f", max);

	return 0;
}

2.

#include<stdio.h>

int main(void)
{
	int m, n, i;

	printf("Enter two integer: ");
	scanf_s("%d%d", &m, &n);

	if (n > m)
	{
		int temp = n;
		n = m;
		m = temp;
	}

	while (n != 0)
	{
		i = n;
		n = m % n;
		m = i;
	}

	printf("GCD: %d", m);

	return 0;
}

3.

#include<stdio.h>

int main(void)
{
	int m, n, i, num, denom;

	printf("Enter two integer: ");
	scanf_s("%d /%d", &num, &denom);

	n = num;
	m = denom;
	if (n > m)
	{
		int temp = n;
		n = m;
		m = temp;
	}

	while (n != 0)
	{
		i = n;
		n = m % n;
		m = i;
	}

	printf("In lowest terms: %d/%d", num / m, denom / m);

	return 0;
}

4.

#include<stdio.h>

int main(void)
{
	float value, commission;

	while (1)
	{
		printf("Enter value of trade: ");
		scanf_s("%f", &value);

		if (value != 0)
		{
			if (value < 2500.00f)
			{
				commission = 30.00f + .017f * value;
			}
			else if (value < 6250.00f)
			{
				commission = 56.00f + .0066f * value;
			}
			else if (value < 20000.00f)
			{
				commission = 76.00f + .0034f * value;
			}
			else if (value < 50000.00f)
			{
				commission = 100.00f + .0022f * value;
			}
			else if (value < 500000.00f)
			{
				commission = 155.00f + .0011f * value;
			}
			else
			{
				commission = 255.00f + .0009f * value;
			}

			if (commission < 39.00f)
			{
				commission = 39.00f;
			}

			printf("commission: %.2f\n", commission);
		}
		else
		{
			printf("END");
			return 0;
		}
	}
}

5.

#include<stdio.h>

int main(void)
{
	int number, i;

	printf("Enter a number: ");
	scanf_s("%d", &number);

	do
	{
		i = number % 10;
		number /= 10;
		printf("%d", i);
	} while (number != 0);

	return 0;
}

6.

#include<stdio.h>

int main(void)
{
	int number;

	printf("Enter a number: ");
	scanf_s("%d", &number);

	for (int i = 2; i * i <= number; i++)
	{
		if ((i * i) % 2 == 0)
		{
			printf("%d\n", i * i);
		}
	}

	return 0;
}

7.

#include <stdio.h>

int main(void)
{
	int n, odd = 3, square = 1;

	printf("This program prints a table of squares.\n");
	printf("Enter number of entries in table: ");
	scanf_s("%d", &n);

	for (int i = 1; i <= n;  ++i)
	{
		printf("%10d%10d\n", i, square);
		square += odd;
		odd += 2;
	}
		
	return 0;
}

8.

#include<stdio.h>

int main(void)
{
	int day, start_day;

	printf("Enter number of days in month: ");
	scanf_s("%d", &day);
	printf("Enter starting day of the week (1=Sun, 7=Sat): ");
	scanf_s("%d", &start_day);

	for (int i = 1, x = 1; i <= day; i++)
	{
		while (x < start_day)
		{
			printf("   ");
			x++;
		}

		x = 100;

		if (start_day == 8)
		{
			start_day -= 7;
		}

		switch (start_day)
		{
		case 1:
			printf("%3d", i);
			start_day++;
			break;
		case 2:
			printf("%3d", i);
			start_day++;
			break;
		case 3:
			printf("%3d", i);
			start_day++;
			break;
		case 4:
			printf("%3d", i);
			start_day++;
			break;
		case 5:
			printf("%3d", i);
			start_day++;
			break;
		case 6:
			printf("%3d", i);
			start_day++;
			break;
		case 7:
			printf("%3d\n", i);
			start_day++;
			break;
		}
	}

	return 0;
}

9.

#include<stdio.h>

int main(void)
{
	float loan, rate, payment;
	int number;

	printf("Enter amount of loan: ");
	scanf_s("%f", &loan);
	printf("Enter interest rate: ");
	scanf_s("%f", &rate);
	printf("Enter monthly payment: ");
	scanf_s("%f", &payment);
	printf("Enter number of paymnet: ");
	scanf_s("%d", &number);

	for (int i = 0; i < number; i++)
	{
		loan = loan - payment + (loan * rate / 100.0f / 12.0f);
	}
	printf("Balance remaining after %d payment: $%.2f\n", number, loan);

	return 0;
}

10.

#include<stdio.h>

int main(void)
{
	int min_month, min_day, min_year,
		month, day, year;

	printf("Enter a date (mm/dd/yy): ");
	scanf_s("%d /%d /%d", &min_month, &min_day, &min_year);

	while (1)
	{
		printf("Enter a date (mm/dd/yy): ");
		scanf_s("%d /%d /%d", &month, &day, &year);

		if (month == 0 && day == 0 && year == 0)
		{
			printf("The earliest date is: %.2d/%.2d/%.2d",
				min_month, min_day, min_year);
			return 0;
		}

		if (year < min_year ||
			year == min_year && month < min_month ||
			year == min_year && month == min_month && day < min_day)
		{
			min_year = year;
			min_month = month;
			min_day = day;
		}
	}
}

11.

#include<stdio.h>

int main(void)
{
	int number;
	float e = 0.00f;

	printf("Enter a number: ");
	scanf_s("%d", &number);

	for (int i = 0; i <= number; i++)
	{
		int n = 1;

		for (int j = 1; j <= i; j++)
		{
			n *= j;
		}

		e += 1.00f / n;
	}

	printf("e: %f", e);

	return 0;
}

12.

#include<stdio.h>

int main(void)
{
	float epsilon, e = 0.00f;

	printf("Enter epsilon: ");
	scanf_s("%f", &epsilon);

	for (int i = 0; ; i++)
	{
		int n = 1;

		for (int j = 1; j <= i; j++)
		{
			n *= j;
		}

		if ((1.00f / n) >= epsilon)
		{
			e += 1.00f / n;
		}
		else
		{
			printf("e: %f", e);
			return 0;
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值