C语言程序设计现代方法(第二版) Chapter 6

第六章

1.找出用户输入的最大数

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	float n, max = 0.00f;
	
	printf("Command: 0 = print max \n\n ");
	
	for (;n > 0;)
	{
		printf("Enter a number: ");
		scanf("%f", &n);
		
		if (n > max)
		{
			max = n;
		}
	}
	
	printf("The largest number entered is %f", max);

    system("pause");
    return 0;
}

2.输入两个整数,找出最大公约数(GCD)

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	int a, b;
	int remainder, GCD;
	
	printf("Enter two integers: ");
	scanf("%d %d", &a, &b);
	
	for (;b > 0;)
	{
		remainder = a % b;
		a = b;
		b = remainder;
	}
	
	GCD = a;
	printf("GCD is : %d", GCD);
	
	system("pause");
	return 0;
} 

3.输入分数,并显示最简分数

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	int a, b;
	int remainder, GCD;
	
	printf("Enter a fraction:");
	scanf("%d/%d", &a, &b);
	
	int x, y;
	x = a;
	y = b;
	
	for (;b > 0;)
	{
		remainder = a % b;
		a = b;
		b = remainder;
	}
	
	GCD = a;
	
	int m, n;
	m = x / GCD;
	n = y / GCD;
	
	printf("In lowest terms: %d/%d", m, n);
	
	system("pause");
	return 0;
 } 

5.逆序的一般化

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
	int x, a, b;
	
	printf("Enter a number :");
	scanf("%d", &x);
	
	printf("The reversal is:");
	
	do 
	{
		a = x % 10;
		x /= 10;
		
		printf("%d", a);
	} while (x != 0);
	
	system("pause");
	return 0;
}

6.显示所有偶数平方值

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	int n, i;
	
	printf("Enter a number: ");
	scanf("%d", &n);
	
	for (i = 2; i * i < n; i += 2 )
	{
		printf("%d \n", i * i);
	}
	
	system("pause");
	return 0;
}

7.显示平方表

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	int n;
	
	printf("This program prints a table of squares \n");
	printf("Enter a number of entries in table : ");
	scanf("%d", &n);
	
	int square, i;
	
	for (i = 1; i<= n; i ++)
	{
		square = i * i;
		printf("%10d%10d \n", i, square);
	}
	
	system("pause");
	return 0;
}

8.显示该月日历

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	int days, n;
	
	printf("Enter number of days in month: ");
	scanf("%d", &n);
	
	printf("Enter starting day of the week(1=Sun. 7=Sat.): ");
	scanf("%d", &days);
	
	int i = 0;
	
	switch (days)
	{
		case 1:
			do
			{
				i ++;
				printf("%2d ", i);
				
				if((i + days - 1) % 7 == 0) 
		        {
			        printf("\n");
		        }
			} while (i < n);
			break;
		case 2:
			do
			{
				i ++;
				
				if(i == 1)
				{
					printf("%5d ", i); 
				}
				else
				printf("%2d ", i);
				
				if((i + days - 1) % 7 == 0) 
		        {
			        printf("\n");
		        }				
			} while (i < n);
			break;
		case 3:
			do
			{
				i ++;
				
				if(i == 1)
				{
					printf("%8d ", i); 
				}
				else
				printf("%2d ", i);
				
				if((i + days - 1) % 7 == 0) 
		        {
			        printf("\n");
		        }
			} while (i < n);
			break;
		case 4:
			do
			{
				i ++;
				
				if(i == 1)
				{
					printf("%11d ", i); 
				}
				else
				printf("%2d ", i);
				
				if((i + days - 1) % 7 == 0) 
		        {
			        printf("\n");
		        }
			} while (i < n);
			break;
        case 5:
			do
			{
				i ++;
				
				if(i == 1)
				{
					printf("%14d ", i); 
				}
				else
				printf("%2d ", i);
				
				if((i + days - 1) % 7 == 0) 
		        {
			        printf("\n");
		        }
			} while (i < n);
			break;
		case 6:
			do
			{
				i ++;
				
				if(i == 1)
				{
					printf("%17d ", i); 
				}
				else
				printf("%2d ", i);
				
				if((i + days - 1) % 7 == 0) 
		        {
			        printf("\n");
		        }
			} while (i < n);
			break;
		case 7:
			do
			{
				i ++;
				
				if(i == 1)
				{
					printf("%20d ", i); 
				}
				else
				printf("%2d ", i);
				
				if((i + days - 1) % 7 == 0) 
		        {
			        printf("\n");
		        }
			} while (i < n);
			break;	
	}
	
	printf("\n");
	
	system("pause");
	return 0;
}

9.还贷

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
	float loan, rate, payment;
	
	printf("Enter amount of loan: ");
	scanf("%f", &loan);
	printf("Enter interest rate: ");
	scanf("%f", &rate);
	printf("Enter monthly payment: ");
	scanf("%f", &payment);
	
	int n;
	printf("Enter your payment times: ");
	scanf("%d", &n);
	
	float balance1, balance2, balance3;
	float monthly_rate = rate / 100.00f / 12;
	
	int i;
	float balance;
	balance = loan - payment + loan * monthly_rate; 
	
	for (i = 1;i < n;)
	{
		if (i == 1)
		{
		    printf("Balance remaining after %d payment: %.2f \n", i, balance);
	    }
	    
	    i ++;
	    
	    balance = balance - payment + balance * monthly_rate;
	    printf("Balance remaining after %d payment: %.2f \n", i, balance);

	}
	
	system("pause");
	return 0;	
}

10.比较最早日期

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
	printf("Order: 0/0/0=exit \n\n");
	
	int mm, dd, yy;
	int min1, min2, min3;
	int sum, min;
	    
	min = 99 * 365 + 31 * 12 + 31;
    
	for (;;)
	{ 
	    printf("Enter first date (mm/dd/yy): ");
	    scanf("%d/%d/%d", &mm, &dd, &yy);
	    
	    sum = yy * 365 + mm * 30 + dd;
	    
	    if (min > sum&&sum != 0)
	    {
	    	min = sum;
	        min3 = yy;
            min1 = mm;
            min2 = dd;
	    }
	    
	    if (sum == 0)
	    {
		    break;
	    }
    }
    printf("%02d/%02d/%02d is the eariest date \n", min1, min2, min3);

    system("pause");
    return 0;
}

11.计算e(自然对数)的近似值

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	int i, n;
	double x = 1, e = 1;
	
	printf("Enter a number: ");
	scanf("%d", &n);
	
	for (i = 1;i < n;i ++)
	{
		x = x * i;
		e += 1 / x;
	}
	
	printf("e = %.16lf", e);
	
	system("pause");
	return 0;
}

12.接11,

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	int i, n;
	double x = 1, e = 1;
	
	printf("Enter a number: ");
	scanf("%d", &n);
	
	float stop;
	
	printf("Enter a small number to terminate: ");
	scanf("%f", &stop);
	
	for (i = 1;i < n;i ++)
	{
		x = x * i;
		e += 1 / x;
		if (e >= stop)
		{
			break;
		}
	}
	
	printf("e = %.16lf", e);
	
	system("pause");
	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神秘的企鹅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值