下面是笔者自己敲下的《C语言程序设计现代方法》第3章的课后编程题的代码
1.编写一个程序,以月/日/年(即mm/dd/yy)的格式接受用户输入的日期信息。并以年月日(即yyyy/mm/dd)的格式将其显示出来。#include2.编写一个程序,对用户输入的产品信息进行格式化。int main(void) { int mm,dd,yy; printf("Enter a date (mm//dd//yyyy):"); scanf("%d/%d/%d",&mm,&dd,&yy); printf("You entered the date %d%02d%02dn",yy,mm,dd); return 0; }
#include3.编写一个程序来分解用户输入的ISBN信息。int main(void) { int num,mm,dd,yy; float price; printf("Enter item number:"); scanf("%d",&num); printf("Enter unit price:"); scanf("%f",&price); printf("Enter purchase date (mm/dd/yyyy):"); scanf("%d/%d/%d",&mm,&dd,&yy); printf("ItemtUnittPurchasen"); printf("tPricetDaten"); printf("%dt$%.2ft%02d/%02d/%dn",num,price,mm,dd,yy); return 0; }
#include4.编写一个程序,提示用户以(xxx)xxx-xxxx 的格式输入电话号码,并以 xxx.xxx.xxxx 的格式显示该号码。int main(void) { int first,second,third,fourth,fifth; printf("Enter ISBN:"); scanf("%d-%d-%d-%d-%d",&first,&second,&third,&fourth,&fifth); printf("GSI prefix: %dn",first); printf("Group identifier: %dn",second); printf("Publilsher code: %dn",third); printf("Item nember: %dn",fourth); printf("Check digit: %dn",fifth); return 0; }
#include5.编写一个程序,要求用户(按任意次序)输入1~16的所有整数,然后用4*4矩阵的形式将它们显示出来,再计算出每行、每列和每条对角线上的和。int main(void) { int first,second,third; printf("Enter phone number [ (xxx) xxx-xxxx ]: "); scanf("(%d) %d-%d",&first,&second,&third); printf("You entered %d.%d.%dn",first,second,third); return 0; }
#include6.修改3.2节的addracc.c程序,使用户可以同时输入两个分母,中间用加号隔开。int main(void) { int i; int a[16];//声明一个长度为16的数组 printf("Enter the numbers form 1 to 16 in any order:n"); //通过for循环来依次读取输入的16个整型 for(i=0;i<16;i++) scanf("%d",&a[i]); //利用for循环来依次输出打印这16个数 for(i=1;i<=16;i++){ printf("%2d ",a[i-1]); //判断是否为每行的末尾,以便打印换行符 if(i%4==0) printf("n"); } printf("Row sums: %2d %2d %2d %2dn",a[0]+a[1]+a[2]+a[3],a[4]+a[5]+a[6]+a[7],a[8]+a[9]+a[10]+a[11],a[12]+a[13]+a[14]+a[15]); printf("Column sums: %2d %2d %2d %2dn",a[0]+a[4]+a[8]+a[12],a[1]+a[5]+a[9]+a[13],a[2]+a[6]+a[10]+a[14],a[3]+a[7]+a[11]+a[15]); printf("Diagonal sums: %2d %2dn",a[0]+a[5]+a[10]+a[15],a[3]+a[6]+a[9]+a[12]); return 0; }
#includeint main(void) { int num1,denom1,num2,denom2,result_num,result_denom; printf("Enter two fractions separated by a plus sign: "); scanf("%d/%d+%d/%d",&num1,&denom1,&num2,&denom2); result_num=num1*denom2+num2*denom1; result_denom=denom1*denom2; printf("The sum is %d/%dn",result_num,result_denom); //这里可以加上if语句判断分母是否为0,以及分子是否为0,以便进一步优化代码的输出格式 //但是到这里,K.N.King的书上并没有涉及到相关的知识点,所以不做赘述 return 0; }



