清览云题库(第四、五章)代码

  对应教材为谭浩强《C语言程序设计》,清览云题库又给出了其四、五章的课外习题

目录

  • 第四章
    • 第4章小练习1-1 比大小
    • 第4章小练习1-2 求平方根
    • 第4章小练习1-3 函数求解
    • 第4章小练习1-4 计算成绩分数所在等级
    • 第4章小练习1-5 按序输出数字
    • 第4章小练习1-6 求塔建筑高度
    • 第4章小练习1-7 求方程实根
    • 第4章小练习1-8 按序输出数字
    • 第4章小练习1-9 计算反应是当前温度T是否能够自发进行
    • 第4章小练习1-10 计算输入序列是否递减
    • 第4章小练习1-11 输出ISBN中所包含的出版地区的信息
    • 第4章小练习1-12 按代数值由小到大的顺序输出两个数
    • 第4章小练习1-13 将大写字母转换为小写字母
    • 第4章小练习2-1 数字操作(5位数逆序)
    • 第4章小练习2-2 求应发奖金总数
    • 第4章小练习2-3 求小明同学在时间t1,t2内运动的距离
  • 第五章
    • 第5章编程题简单-1 星座
    • 第5章编程题简单-2 九九乘法表
    • 第5章编程题简单-3 近似值
    • 第5章编程题简单-4 找出100-200之间不能被3整除的数
    • 第5章编程题简单-5 找出100-200之间的素数
    • 第5章编程题简单-6 韩信点兵
    • 第5章编程题中等-1 素数计算
    • 第5章编程题中等-2 求两数的最大公约数和最小公倍数
    • 第5章编程题中等-3 计算球在第10次落地时,共经过多少米,第10次反弹多高
    • 第5章编程题中等-4 计算选秀选手的最后得分
    • 第5章编程题中等-5 马克思鸡兔同笼
    • 第5章编程题较难-1 三天打鱼两天晒网
    • 第5章编程题较难-2 捕鱼
    • 第5章编程题较难-3 两面族
    • 第5章编程题较难-4 SIN函数曲线(未完成)


第四章

第4章小练习1-1 比大小

#include
#include
//比大小
//有3个整数a,b,c,由键盘输入,输出其中最大的数(使用if-else语句)
#include  "stdio.h"
int main(){ 
	int a,b,c,temp,max;
  	scanf("%d %d %d",&a,&b,&c);
  	temp=(a>b)?a:b;                    
  	max=(temp>c)?temp:c;               
  	printf("%d",max);
  	return 0;
}

第4章小练习1-2 求平方根

#include
#include 
//求平方根
//从键盘输入一个小于1000的正数
//要求输出它的平方根(如果平方根不是整数则输出其整数部分)
int main(){
	int i,k;
	scanf("%d",&i);
	k=sqrt(i);
	printf("%d",k);
	return 0;
}

第4章小练习1-3 函数求解

#include
#include
//函数求解
//编写一个C程序,输入x的值,输出y相应的值
int main(){
	int x,y;
	scanf("%d",&x);
	y=0;
	if(x>0) 
		y=1;
	else if(x <0)
		y=-1;	
	printf("y=%d",y);
	return 0;
} 

第4章小练习1-4 计算成绩分数所在等级

#include
#include
//计算成绩分数所在等级
//给出一百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’
//90分以上为‘A’,80~89为‘B’,70~79为‘C’,60~69为‘D’, 60分以下为‘E’
int main(){
	float score;
	char grade;
	scanf("%f",&score);
	switch((int)(score/10)) {
		case 10:
		case 9:
			grade='A';
			break;
		case 8:
			grade='B';
			break;
		case 7:
			grade='C';
			break;
		case 6:
			grade='D';
			break;
		case 5:
		case 4:
		case 3:
		case 2:
		case 1:
		case 0:
			grade='E';
	}
	printf("%c ",grade);
	return 0;
}

第4章小练习1-5 按序输出数字

#include
#include
//按序输出数字
//输入4个整数,要求按由小到大的顺序输出
int main(){
	int  t,a,b,c,d;
	scanf("%d %d %d %d",&a,&b,&c,&d);
	if (a>b) {
		t=a;
		a=b;
		b=t;
	}
	if (a>c) {
		t=a;
		a=c;
		c=t;
	}
	if (a>d) {
		t=a;
		a=d;
		d=t;
	}
	if (b>c) {
		t=b;
		b=c;
		c=t;
	}
	if (b>d) {
		t=b;
		b=d;
		d=t;
	}
	if (c>d) {
		t=c;
		c=d;
		d=t;
	}
	printf("%d %d %d %d",a,b,c,d);
	return 0;
}

第4章小练习1-6 求塔建筑高度

#include
#include
//输入任意点坐标,求该点的建筑高度
//有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1,这四个塔的高度为10米
//塔以外无建筑物。输入任意点坐标,求该点的建筑高度(塔外高度为0)
int main(){
	int  h=10;
	float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;
	scanf("%f%f",&x,&y);
	d1=(x-x4)*(x-x4)+(y-y4)*(y-y4);           
	d2=(x-x1)*(x-x1)+(y-y1)*(y-y1);
	d3=(x-x2)*(x-x2)+(y-y2)*(y-y2);
	d4=(x-x3)*(x-x3)+(y-y3)*(y-y3);
	if (d1>1 && d2>1 && d3>1 && d4>1)  
		h=0;  
	printf("%d",h);
	return 0;
} 

第4章小练习1-7 求方程实根

#include
#include
//求方程实根
//编写程序,从键盘输入一个二元一次方程ax2+bx+c=0的三个参数a、b、c(均为整数)
//求此方程的实根。如果方程有实根,则输出实根(精确到小数点后2位,较大实根在前)
//如果没有实根,则输出没有实根的信息
int main(){
	int a,b,c;
	double p,x1,x2;
	scanf("%d %d %d",&a,&b,&c);
	p=1.0*b*b-4.0*a*c;
	if(p>=0){
		x1=(-b+sqrt(p))/2/a;
		x2=(-b-sqrt(p))/2/a;
		printf("实根为%.2lf,%.2lf",x1,x2);
	}
	else
		printf("无实根!");
} 

第4章小练习1-8 按序输出数字

#include
#include
//按序输出数字
//输入三个整数a,b,c,从小到大排列依次存入a,b,c中并输出
int main(){
	int a,b,c,t;
	scanf("%d %d %d",&a,&b,&c);
	if(a>b){
		t=a;
		a=b;
		b=t;
	}
	if(b>c){
		t=b;
		b=c;
		c=t;
	}
	if(a>b){
		t=a;
		a=b;
		b=t;
	}
	printf("%d %d %d",a,b,c);
} 

第4章小练习1-9 计算反应是当前温度T是否能够自发进行

#include
#include
//计算反应在当前温度T下是否能够自发进行
//一个反应的吉布斯自由能变能够告诉我们该反应在当前温度T下是否能够自发进行。其计算公式为:
int main(){
	double g,h,t,s;
	scanf("%lf %lf %lf",&h,&t,&s);
	g=h-t*s;
	if(g<0) 
		printf("Yes");
	else
		printf("No");
} 

第4章小练习1-10 计算输入序列是否递减

#include
#include
//计算输入序列是否递减
//编写一个程序,从键盘依次读入5个实数,如果整个输入序列不递减,则输出YES,否则输出NO
//(所谓输入序列不递减,指对于序列中连续的两个数n1和n2,满足n1<=n2)
int main(){
	double n1,n2,n3,n4,n5;
	scanf("%lf %lf %lf %lf %lf",&n1,&n2,&n3,&n4,&n5);
	if(n1<=n2||n2<=n3||n3<=n4||n4<=n5)
		printf("Yes");
	else
		printf("No");
}

第4章小练习1-11 输出ISBN中所包含的出版地区的信息

#include
#include
//输出ISBN中所包含的出版地区的信息
//每本书的封底都有一串号码,比如978-7-111-34081-2,它叫做"国际标准书号"(International Standard Book Number,缩写为ISBN)。它是全世界图书的编码,用来唯一代表一本书。目前ISBN是13位。从组成上看,13位的ISBN可以分为5个区:
//第一区 EAN-UCC前缀 、第二区 组区号、第三区 出版者号、第四区 出版序号、第五区 校验码。
//其中第二区 组区号从第4位数字开始。这部分表明这本书是哪个国家或地区出版的。0或1表示英语国家,2表示法语国家,3表示德语国家,4表示日本,5表示俄语国家,6表示伊朗,7表示中国大陆,89表示韩国,957和986表示台湾,962和988表示香港,99936表示不丹。
//输入一个13位ISBN。输入格式:978-7-111-34081-2
//输入之后,输出ISBN中所包含的出版地区的信息。
//比如:组区号为7,则输出” China”。
//这里我们最低要求识别的地区包括:
//0 English Region
//1 English Region
//2 French Region
//4 Japan
//7 China
//89 South Korea
//957 Taiwan
//986 Taiwan
//962 Hong Kong
//988 Hong Kong 
int main(){
	int i1,i2,i3,i4,i5;
	scanf("%d-%d-%d-%d-%d",&i1,&i2,&i3,&i4,&i5);
	switch(i2){
		case 0:printf("English Region");break;
		case 1:printf("English Region");break;
		case 2:printf("French Region");break;
		case 4:printf("Japan");break;
		case 7:printf("China");break;
		case 89:printf("South Korea");break;
		case 957:printf("Taiwan");break;
		case 986:printf("Taiwan");break;
		case 962:printf("Hong Kong");break;
		case 988:printf("Hong Kong");break;
	}
}

第4章小练习1-12 按代数值由小到大的顺序输出两个数

//按代数值由小到大的顺序输出两个数
//输入两个实数,按代数值由小到大的顺序输出这两个数(保留两位小数)
#include
#include
//按代数值由小到大的顺序输出两个数
//输入两个实数,按代数值由小到大的顺序输出这两个数(保留两位小数) 
int main(){
	float a,b,t;
	scanf("%f %f",&a,&b);
	if(a>b) {
		t=a;
		a=b;
		b=t;
	}
	printf("%.2f %.2f",a,b);
	return 0;
}

第4章小练习1-13 将大写字母转换为小写字母

#include
#include
//将大写字母转换为小写字母
//输入一个字符,判别它是否为大写字母,如果是,转换成小写字母,如果不是,不转换
int main(){
	char ch;
	scanf("%c",&ch);
	ch=(ch>='A' && ch <='Z') ? (ch+32) : ch;
	printf("%c",ch);
	return 0;
}

第4章小练习2-1 数字操作(5位数逆序)

#include
#include
//数字操作
//输入一个不多于5位的正整数,要求:
//求出它是几位数
//分别输出每一位数字
//按逆序输出各位数字,例如原数为321,应输出123
int  main(){
	int num,indiv,ten,hundred,thousand,ten_thousand,place;      
	scanf("%d",&num);
	if (num>9999)
		place=5;
	else  if (num>999)
		place=4;
	else  if (num>99)
		place=3;
	else  if (num>9)
		place=2;
	else 
		place=1;
	printf("位数:%d\n",place);
	printf("每位数字为:");
	ten_thousand=num/10000;
	thousand=(int)(num-ten_thousand*10000)/1000;
	hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;
	ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
	indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);
	switch(place) {
		case 5:
			printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);
			printf("\n反序数字为:");
			printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);
			break;
		case 4:
			printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
			printf("\n反序数字为:");
			printf("%d%d%d%d\n",indiv,ten,hundred,thousand);
			break;
		case 3:
			printf("%d,%d,%d",hundred,ten,indiv);
			printf("\n反序数字为:");
			printf("%d%d%d\n",indiv,ten,hundred);
			break;
		case 2:
			printf("%d,%d",ten,indiv);
			printf("\n反序数字为:");
			printf("%d%d\n",indiv,ten);
			break;
		case 1:
			printf("%d",indiv);
			printf("\n反序数字为:");
			printf("%d",indiv);
			break;
	}
	return 0;
}

第4章小练习2-2 求应发奖金总数

#include
#include
//求应发奖金总数
//企业发放的奖金根据利润提成
//利润I低于或等于100000元的,奖金可提成10%;利润高与100000元,低于200000元(100000≤I ≤200000)时,低于100000元的部分按10%提成
//高于100000的部分,可提成7.5%;200000< I ≤400000时,低于200000元的部分仍按上述办法提成(下同)
//高于200000元的部分按5%提成;400000< I ≤600000元时,高于400000元的部分按3%提成;600000< I ≤1000000时,高于600000元的部分按1.5%提成
//I>1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数,保留两位小数
//用if语句编写程序
int main(){
	int i;
	double bonus,bon1,bon2,bon4,bon6,bon10;
	bon1=100000*0.1;
	bon2=bon1+100000*0.075;
	bon4=bon2+200000*0.05;
	bon6=bon4+200000*0.03;
	bon10=bon6+400000*0.015;
	scanf("%d",&i);
	if (i <=100000)
		bonus=i*0.1;
	else if (i <=200000)
		bonus=bon1+(i-100000)*0.075;
	else if (i <=400000)
		bonus=bon2+(i-200000)*0.05;
	else if (i <=600000)
		bonus=bon4+(i-400000)*0.03;
	else if (i <=1000000)
		bonus=bon6+(i-600000)*0.015;
	else
		bonus=bon10+(i-1000000)*0.01;
	printf("%.2f",bonus);
	return 0;
} 

第4章小练习2-3 求小明同学在时间t1,t2内运动的距离

#include
#include
//求小明同学在时间t1,t2内运动的距离
//大学里上午上课时间是八点钟。小明同学7点30分在食堂吃完饭后,以100m/min的速度步行去教室
//但是走了10分钟后小明一看手表发现手表上已经7点55分了(其实是手表坏了),小明感到很着急马上开始跑步,小明跑步的速度是150m/min
//小明跑了10分钟后,听到手机在响,原来这是他设置的闹钟,现在才7点50!而距离教室也只有500m的距离了,所以小明又放慢脚步,以50m/min的速度刚好在8点到达教室,开始上课
//现在输入时间点t1、t2(t1、t2在7:30到8:00之间且t1
int main(){
	int t1,t2,s;
	scanf("%*c%*c%d %*c%*c%d",&t1,&t2);
	if(t2==0) t2=60;
	if(t2 <=40)
		s=(t2-t1)*100;
	else if(t2 <=50){
		if (t1 <=40)
			s=(40-t1)*100+(t2-40)*150;
		else
			s=(t2-t1)*150;
	}
	else if(t2 <=60){
		if (t1 <=40)
			s=(40-t1)*100+1500+(t2-50)*50;
		else if(t1 <=50)
			s=(50-t1)*150+(t2-50)*50;
		else
			s=(t2-t1)*50;
	}
	printf("%d米",s);
} 

第五章

第5章编程题简单-1 星座

#include 
#include
//计算星座
//
//编写程序输入月份和日期,给出对应的星座。下面是星座计算表。
//3.21-4.20   白羊	4.21-5.20   金牛	5.21-6.20   双子
//6.21-7.22   巨蟹	7.23-8.22   狮子	8.23-9.22   处女
//9.23-10.22  天秤	10.23-11.22 天蝎	11.23-12.22 人马
//12.23-1.20  摩羯	1.21-2.20   宝瓶	2.21-3.20   双鱼
int main(){
  	int m=0,d=0,t=0;
	printf("计算星座,输入月份和日期\n"); 
	scanf("%d%d",&m,&d); //输入月份和日期 
	printf("%d月%日的对应星座为",m,d);
	exchange(m,d);
	return 0;
}
void exchange(int m,int d){
	int t=0;
	t=m<7?21:23; //7月前为21,7月后为23
	if(d>=t) m++; // 在一个月的t号之后月份加一
	switch(m){
	    case 2:printf("水瓶");break;
	    case 3:printf("双鱼");break;
	    case 4:printf("白羊");break;
	    case 5:printf("金牛");break;
	    case 6:printf("双子");break;
	    case 7:printf("巨蟹");break;
	    case 8:printf("狮子");break;
	    case 9:printf("处女");break;
	    case 10:printf("天秤");break;
	    case 11:printf("天蝎");break;
	    case 12:printf("人马");break;
	    default:printf("摩羯"); //13月,与1月相同处理
    }
  return 0;
}

第5章编程题简单-2 九九乘法表

#include
int main(){
	int i,j;
	for(i=1;i<=9;i++){
		for(j=1;j<=i;j++)
		printf("%d*%d=%d ",i,j,i*j);
	printf("\n");
	}
	return 0;
}

第5章编程题简单-3 近似值

#include
#include
//近似值
//编写程序利用公式计算下面公式的近似值,直到括号中最后一项的绝对值小于10-6次方为止
int main(){
	int s=1;
	double pi=0,n=1,t=1;
	while (fabs(t)>1e-6)
		pi=pi+t, n=n+2, s=-s, t=s/n;
	pi=pi*4;
	printf("%lf\n",pi);
    return 0;
} 

第5章编程题简单-4 找出100-200之间不能被3整除的数

#include
//找出100-200之间的不能被3整除的数 
int main(){
	int i;
	for(i=100;i<=200;i++){
		if(i%3!=0){
			printf("%d ",i);
		}
	}
	return 0;
} 

第5章编程题简单-5 找出100-200之间的素数

#include
#include
//求100-200之间的全部素数 
int main(){
	int n,k,i,m=0;
	for(n=101;n<=200;n=n+2){
		k=sqrt(n);
		for(i=2;i<=k;i++)
			if(n%i==0) break;
		if(i>=k+1){
			printf("%d ",n);
			m=m+1;
		}
		if(m%10==0) printf("\n");
	}
	printf("\n");
	return 0;
} 

第5章编程题简单-6 韩信点兵

#include
#include
//韩信点兵
//韩信有一队兵,他想知道有多少人,便让士兵排队报数:
//按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;
//按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10
//编程求韩信至少有多少兵?
int main() {
	int i;
	for(i=1;; i++) {
		if(i%5==1&&i%6==5&&i%7==4&&i%11==10) {
			printf("%d",i);
			break;
		}
	}
}

第5章编程题中等-1 素数计算

#include
#include
#include
//素数计算
//编写程序计算某区间内素数的个数cnt,并按所求素数的值从大到小的顺序,
//再计算其间隔减、加之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值sum
int main(){
	int s=0,cnt=0,f=1,i,j,a,b;
	scanf("%d %d",&a,&b);
	for(i=b;i>=a;i--){
       for(j=2;j<=sqrt(i);j++)
          if(i%j==0) break;
       if(j>sqrt(i)){
          cnt++;
          s=s+f*i;
          f=-f;
       }
	}
	printf("%d %d",cnt,s);
    return 0;
}

第5章编程题中等-2 求两数的最大公约数和最小公倍数

#include
#include 
//求两数的最大公约数和最小公倍数
//输入两个正整数m和n,求其最大公约数和最小公倍数
int main(){
	int p,r,n,m,temp;
	scanf("%d %d",&n,&m);
	if (n<m) {
		temp=n;
		n=m;
		m=temp;
	}
	p=n*m;
	while(m!=0) {
		r=n%m;
		n=m;
		m=r;
	}
	printf("最大公约数:%d\n",n);
	printf("最小公倍数:%d",p/n);
	return 0;
}

第5章编程题中等-3 计算球在第10次落地时,共经过多少米,第10次反弹多高

#include
#include 
//计算球在第10次落地时,共经过多少米,第10次反弹多高
//一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹
//求它在第10次落地时,共经过多少米,第10次反弹多高
int main(){
	double sn=100,hn=sn/2;
	int n;
	for (n=2; n <=10; n++) {
		sn=sn+2*hn;   
		hn=hn/2;      
	}
	printf("第10次落地时共经过%.6lf米\n",sn);
	printf("第10次反弹%.6lf米\n",hn);
	return 0;
}

第5章编程题中等-4 计算选秀选手的最后得分

#include
#include
//计算选秀选手的最后得分
//在选秀节目中有10个评委为参赛选手打分,分数为1到100分,选手最后的得分为去掉一个最高分和去掉一个最低分后其余8个分数的平均分
//编写程序,输入10个分数,输出选手的最后得分
int main(){
	int i=1,x,min=100,max=0,s=0;
	while(i<=10){
		scanf("%d",&x);
		min=x<min?x:min;
		max=x>max?x:max;
		s=s+x;
		i++;
	}
	printf("%.2lf",(s-min-max)/8.0);
}

第5章编程题中等-5 马克思鸡兔同笼

#include
#include
//趣味数学题
//马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令
//问男人、女人和小孩各有几人?输出所有的可能结果
int main(){
	int man,woman;
	for(man=1; man <=17; man++)
		for(woman=1; woman <=25; woman++) {
			if(50 == man*3 + woman*2 +(30-man-woman) )
				printf("man:%d,woman:%d,child:%d\n",man,woman,30-man-woman);
		}
}

第5章编程题较难-1 三天打鱼两天晒网

#include
#include
int main(){
	int y,m,d,days=0;
	scanf("%d/%d/%d",&y,&m,&d);
    days=365*(y-2000);//计算整年的天数
    int i=0; 
    for (i=2000;i <y;i++)  //修正闰年的366天
        if((i%400==0)||((i%100!=0)&&(i%4==0)))
            days++;
    for (i=1;i <m;i++){  //计算整月的天数
        switch (i){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                days=days+31;break;
            case 4:
            case 6:
            case 9:
            case 11:
                days=days+30;break;
            case 2:
                days=days+28;
                if((y%400==0)||((y%100!=0)&&(y%4==0))) days++;
                break;
        }
    }
    days=days+d;  //计算当月已经过去的天数
    if (days%5==1||days%5==2||days%5==3)
		printf("fishing\n");
    else
		printf("sleeping\n");
    return 0;
} 

第5章编程题较难-2 捕鱼

#include
#include
//捕鱼
//A、B、C、D、E五个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉
//到了早上,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份
//B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份
//C、D、E依次醒来,也按同样的方法拿走鱼。编写程序求他们合伙至少捕了多少条鱼?
int main(){
	int s1,s2,s3,s4,s5;
    for (s5=16;;s5=s5+5){
        int cnt=0;
        s4=(s5-1)*4/5;
        if ((s4-1)%5==0) {
            s3=(s4-1)*4/5;
cnt++;
        }
        else continue;
        if ((s3-1)%5==0){
            s2=(s3-1)*4/5;
cnt++;
        } else continue;
        if ((s2-1)%5==0) {
            s1=(s2-1)*4/5;
cnt++;
        }
        else continue;
        if ((s1-1)%5==0) {
cnt++;
        }
        else continue;
        if (cnt==4) {
printf("%d\n",s5);
            break;
        }
    }
    return 0;
}

第5章编程题较难-3 两面族

#include
#include 
//两面族
//两面族是荒岛上的一个新民族,他们的特点是说话真一句假一句且真假交替
//如果第一句为真,则第二句是假的;如果第一句为假的,则第二句就是真的,但是第一句是真是假没有规律。迷语博士遇到三个人,知道他们分别来自三个不同的民族:诚实族、说谎族和两面族
//三人并肩站在博士前面,博士问左边的人:“中间的人是什么族的?”,左边的人回答:“诚实族的”。博士问中间的人:“你是什么族的?”,中间的人回答:“两面族的”。博士问右边的人:“中间的人究竟是什么族的?”,右边的人回答:“说谎族的”
//编写程序判断这三个人是哪个民族的?
int main(){
	int s1,s2,s3,flag=0;//0-诚实族、1-说谎族和2-两面族
    for (s1=0;s1<=2;s1++){
        for (s2=0;s2 <=2;s2++){
            for (s3=0;s3 <=2;s3++){
                int ss1=s1,ss2=s2,ss3=s3;
                if (ss1==0) ss2=0;
                if ((ss1==1)&&(ss2==0)) ss3=1;
                if (ss3==0) ss2=1;
                if(ss1!=ss2&&ss2!=ss3&&ss1!=ss3){
					printf("%d %d %d",ss1,ss2,ss3);
                        flag=1;
                        break;
                }
            }
            if (flag==1) break;
        }
        if (flag==1) break;
    }
    return 0;
}

第5章编程题较难-4 SIN函数曲线(未完成)

#include
#include 
//SIN函数曲线
//编写程序在屏幕上打印如下的SIN函数曲线
int main(){
	printf("**********************************************************\n");
	int i=0;
    for (i=0;i <=330;i=i+15){
        double t=sin(2*3.1415926*i/360);
        printf("sin(%3d)=%+.4lf",i,t);
        if (t>0){
            for (i=0;i <24;i++)
                printf(" ");
            printf("*");
            for (i=0;i <t*16;i++)
                printf(" ");
            printf("*");
        }
        if (t <0){
            for (i=0;i <24+t*16;i++)
                printf(" ");
            printf("*");
            for (i=0;i <-t*16-2;i++)
                printf(" ");
            printf("*");
        }
        if (t==0) {
            for (i=0;i <24;i++)
                printf(" ");
            printf("*");
        }
        printf("\n");

    }
    return 0;
}

你可能感兴趣的:(c语言)