《C语言程序设计_现代方法 第2版》课后编程部分习题 第六章

挑选几个喜欢的程序以备日后回顾

  • 编写程序,找出用户输入的一串数中的最大数。程序需要提示用户一个一个地输入数
#include <stdio.h>
int main(void){
	int i=0;
	float max=0,number=0;
	for(;i<6;i++){
		printf("enter a numebr :");
		scanf("%f",&number);
		if(number>max){
			max=number;
		}
	}
	printf("the largest number entered is %.2f" ,max);
	return 0;
}
  • 编写程序,要求用户输入两个整数,然后计算并显示这两个数的最大公约数(写了两个程序,第一个明显复杂…)
#include <stdio.h>
int main(void){
	int m=0,n=0,num=0,temp=0;
	printf("enter two integers : ");
	scanf("%d %d",&m,&n);
	if(m==0 || n==0){
		printf("please enter valid integer");
		return 0;
	}
	if(m<n){
		temp=n;
		n=m;
		m=temp;
	}
	if(m%n==0){
		printf("greatest common divisor :%d", n);
		return 0;
	}
	while(m%n!=0){
		num=m%n;
		m=n;
	}
	printf("greatest common divisor : %d",num);
	return 0;
}
#include <stdio.h>
int main (void)
{
	int m=0,n=0,num=0;
	printf("enter two integers: ");
	scanf("%d %d",&m,&n);
	while(n!=0){
		num=n;
		n=m%n;
		m=num;	
	}
	printf("Greatest common divisor: %d", m);
	return 0;
}
  • 编写程序,要求用户输入一个分数,然后将其约分为最简分式
#include <stdio.h>
int main(void){
	int m=0,n=0,temp=0;
	int numerator=0,denominator=0;
	printf ("enter a fraction : ");
	scanf ("%d/%d",&m,&n);
	if(n==0){
		printf("illegal fraction");
		return 0;
	}
	numerator=m;
	denominator=n; 
	while(n!=0){
		temp=n;
		n=m%n;
		m=temp;		
	}
	numerator=numerator/m;
	denominator=denominator/m;
	printf("in lowest terms : %d/%d",numerator,denominator); 
	return 0;
}


  • 编写程序,显示数字的逆序(这里输出了数字的位数…此处告诉自己要仔细审题)
#include <stdio.h>
int main(void){
	int number=0,i=0;
	printf("please enter an integer as you like");
	scanf("%d",&number);
	do {
		number=number/10;
		i++;
	}while(number!=0);
	printf("this is a %d digit number",i);
	return 0;
}
  • 编写程序,提示用户输入一个数 n ,然后显示出 1 ~ n 的所有偶数平方值
#include <stdio.h>
int main(void){
	int n=0,i=0;
	printf("enter a number n");
	scanf("%d" ,&n);
	printf("look at this \n");
	for(i=2;i<=n;i=i+2){
		printf("%d\n" ,i*i);
	}
	return 0;
}
  • 编写程序,显示单月的日历,用户指定本月的天数和该月起始日是星期几
#include <stdio.h>
int main(void){
	int day=0,week=0,i=0,day_start=0,days=0;
	printf("enter number of days in month : ");
	scanf("%d",&days);
	printf("enter starting days of the week \
	like this (1=Mon,7=Sun)");
	scanf("%d",&day_start);
	printf("\t一\t二\t三\t四\t五\t六\t日\n");
	for(i=1;i<day_start;i++){
		printf("\t");
		}
	for(day=1,week=day_start-1;day<=days;day++,week++){
		if(week%7==0){
			printf("\n");
		}
		printf("\t%2d",day);
	}
	return 0; 
}


  • 编写程序,使用户可以输入任意个日期,用0/0/0指示输入结束,不再输入日期
#include <stdio.h>
int main(void){
	int yy=99,mm=99,dd=99,yy_old=99,mm_old=99,dd_old=99,\
	yy_new=99,mm_new=99,dd_new=99;
	printf("if you want to exit please enter 0/0/0\n");
	do{
		printf("enter a data :");
		scanf("%d/%d/%d",&yy,&mm,&dd);
		yy_old=yy;
		mm_old=mm;
		dd_old=dd;
		if(yy_old==0 && mm_old==0 && dd_old==0){
			printf("the earliest date is %2d/%2d/%2d"\
			,yy_new,mm_new,dd_new);
			return 0;
		}
		if(yy<yy_new){
			yy_new=yy;
			mm_new=mm;
			dd_new=dd;
		}
		if(yy==yy_new){
			if(mm<mm_new){
				yy_new=yy;
				mm_new=mm;
				dd_new=dd;
			}
			if(mm==mm_new){
				if(dd<dd_new){
					yy_new=yy;
					mm_new=mm;
					dd_new=dd;
				}
			}	
		}
	}while(1);
	return 0;
}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值