1227|c基础day2作业

目录

一、day2作业

        1.1 计算10个单字符的最大值

        1.2 日本发生命案,警察把嫌疑人确定在4人当中(a,b,c,d) 。审讯结果:两个人说的真话,两个人说的假话。请根据以下对话及审讯结果写一个代码,判断谁是罪犯

二、多分选择结构

2.1 Switch选择结构

2.1.1 对学生的考试成绩分级评测,规则为: 成绩1-100之间合法

2.1.2 输入不同的数,输出对应的星期值,1-7以外的值时提示错误

2.1.3 输入血型,根据血型判断性格       

2.1.4 计算器:输入一个表达式,输出结果

2.2 while

2.2.1 计算1-100之间的和

2.2.2 使用while循环实现输出a—b之间能被3与5整除,但不能被7整除的奇数

2.2.3 输入一个整数,while实现判断是几位数

2.2.4 输入一个整数,while实现求各个数字之和

2.3 do...while

2.3.1 使用do..while计算1-100的和

2.3.2 输入n个数,当输入0结束循环,计算和

2.3.3 充话费

2.4 for

2.4.1 计算1-100的和

2.4.2 有10位评委打分,分数在1-10之间,计算去掉最高分,最低分的平均值

2.5 goto

2.6 continue


一、day2作业

1.1 计算10个单字符的最大值

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int a,i,max;
	for(i=1;i<=10;i++)
	{
		printf("请输入第%d个字符:",i);
		scanf("%d",&a);
		{
		if(i==1)
			max=a;
		if(max<a)
			max=a;
		}
	}
	printf("这10个单字符中最大的字符是:%d\n",max);

	return 0;
}

1.2 日本发生命案,警察把嫌疑人确定在4人当中(a,b,c,d) 。审讯结果:两个人说的真话,两个人说的假话。请根据以下对话及审讯结果写一个代码,判断谁是罪犯。

        a: 罪犯在其他三个当中

        B:人不是我杀的,是c杀的

        c: a和d之间有一个是罪犯

        d: b说的是事实

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int killer = 0;
	for (killer = 'A'; killer <= 'D'; killer++)
	{
		if ((killer!='A') + (killer!='B'&&killer=='C') + (killer=='A'||killer=='D')+(killer!='D'&&killer=='C')  == 2)
        //或者用if ((killer!='A') + (killer=='C') + (killer=='A'||killer=='D')+(killer!='D'&&killer=='C')  == 2)也可以实现
		{
			printf("killer is %c\n", killer);
		}
	}
	return 0;

}

二、多分选择结构

2.1 Switch选择结构

2.1.1 对学生的考试成绩分级评测,规则为: 成绩1-100之间合法

        ①成绩>=90为等级A
        ②成绩>=80为等级B
        ③成绩>=70为等级C
        ④成绩>=60为等级D
        ⑤成绩<60为等级E

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int score;
	printf("请输入一个数:\n");
	scanf("%d",&score);
	if(score>=0&&score<=100)
	{
	switch(score/10)
	{
		case 10:printf("等级为A\n");break;
		case 9:printf("等级为A\n");break;
		case 8:printf("等级为B\n");break;
		case 7:printf("等级为C\n");break;
		case 6:printf("等级为D\n");break;
		default:printf("等级为E\n");break;	   
	}
	}
	else
		printf("该成绩不合法\n");
	return 0;
}

2.1.2 输入不同的数,输出对应的星期值,1-7以外的值时提示错误

如:输入1,输出星期一
       输入4,输出星期四
       输入10,输出错误

#include<stdio.h> 
int main(int argc, const char *argv[])
{
	int day;
	printf("请输入天数:");
	scanf("%d",&day);
	switch(day)
	{
	    case 1:printf("星期1\n");break;
	    case 2:printf("星期2\n");break;
	    case 3:printf("星期3\n");break;
	    case 4:printf("星期4\n");break;
	    case 5:printf("星期5\n");break;
	    case 6:printf("星期6\n");break;
	    case 7:printf("星期7\n");break;
	    default:printf("输入错误\n");break;
	}
	    return 0;
}

2.1.3 输入血型,根据血型判断性格       

要求:输入A,a,都是A型,具有创造性、理智的性格。          
           输入B,b,都是B型,具有积极性、实干家的性格。    
           输入O,o,都是O型,具有善于交际、乐观的性格。    
           输入X,x,都是AB型,具有冷酷、理智的性格。          
           输入其他,显示,你是外星人吧。

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int blood;
	printf("请输入你的血型:\n");
	scanf("%d",&blood)
	switch(blood)
	{
	case 'A':case 'a':printf("你是A型血,具有创造性、理智的性格。\n");break;
	case 'B':case 'b':printf("你是B型血,具有积极性、实干家的性格。\n");break;
	case 'C':case 'c':printf("你是C型血,具有善于交际、乐观的性格。\n");break;
	case 'X':case 'x':printf("你是AB型血,具有冷酷、理智的性格。\n");break;
		default:printf("你是外星人吧。\n");break;
	}
	return 0;
}

2.1.4 计算器:输入一个表达式,输出结果

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int a,b;
	char c;
	printf("请输入一个表达式:\n");
	scanf("%d%c%d",&a,&b,&c);
	switch(c)
	{
		case '+':a+b;printf("得数为%d\n",c);break;
		case '-':a-b;printf("得数为%d\n",c);break;
		case '*':a*b;printf("得数为%d\n",c);break;
		case '/':a/b;printf("得数为%d\n",c);break;
		default:printf("无法计算\n");break;
	}
	return 0;
}

2.2 while

2.2.1 计算1-100之间的和

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int sum=0,i=1;
	while(i<=100)
	{
		i++;
		sum+=i;
	}
	printf("%d\n",sum);
	return 0;
}

2.2.2 使用while循环实现输出a—b之间能被3与5整除,但不能被7整除的奇数

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int a,b,t;
	printf("请输入一个数a:\n");
	scanf("%d",&a);
	printf("请输入一个数b:\n");
	scanf("%d",&b);
	if(a>b)//如果a比b大,则将b的值替换到a,达成a<b
	{
		t=a;a=b;b=t;//替换
	}
	while(a<=b)
	{
		if(a%3==0&&a%5==0&&a%7!=0&&a%2!=0)
		{
			printf("%d\t",a);
		}
		a++;
	}
	return 0;
}

2.2.3 输入一个整数,while实现判断是几位数

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int a,count=0;
	printf("请输入一个数a\n");
	scanf("%d",&a);
	int i=0;
	while(a!=0)
	{
		a/=10;
		i++;
	}
	printf("这是一个%d位数\n",i);
	return 0;
}

2.2.4 输入一个整数,while实现求各个数字之和

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int a,b,sum=0;
	printf("请输入一个数a:\n");
	scanf("%d",&a);
	while(a!=0)
	{
		sum+=a%10;
		a/=10;
	}
	printf("各个数字的和为%d\n",sum);
	return 0;
}

2.3 do...while

2.3.1 使用do..while计算1-100的和

int i=1,sum=0;
	do{   
        sum+=i;
		i++;
	}while(i<=100);

2.3.2 输入n个数,当输入0结束循环,计算和

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int i,a,sum=0;
	do{
		printf("请输入一个数");
		scanf("%d",&a);
		sum+=a;
		i++;
	}while(a!=0);
	printf("这几个数的和是%d\n",sum);
	return 0;
}

2.3.3 充话费

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int a,sum=-100;
	do
	{
		printf("请输入金额:\n");
		scanf("%d",&a);
		sum+=a;
		if(sum<=0)
		printf("金额不足,无法正常使用。\n");
	}while(sum<=0);
	printf("金额大于0,可以正常使用。\n");
	return 0;
}

2.4 for

2.4.1 计算1-100的和

  for(i=1;i<=100;i++)
    {
        sum+=i;
    }

2.4.2 有10位评委打分,分数在1-10之间,计算去掉最高分,最低分的平均值

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int a,i,max,min,sum=0;
	for(i=1;i<=10;i++)
	{
		printf("请输入第%d个评分:",i);
		scanf("%d",&a);
		if(i==1)     //第一次循环
		{
			max=a;   //定义max
			min=a;   //定义min
		}
		if(max<a)    //如果max小于输入的数
			max=a;   //将a替换到max
		if(min>a)    //如果min大于输入的数
			min=a;   //将a替换到min
		sum+=a;
	}
	printf("最高分:%d 最低分:%d 平均分:%2.f\n",max,min,(float)((sum-max-min)/8));
                                                        //将sum的值强制转化为float
	return 0;
}

2.5 goto

	int i=1,sum=0;
p:                      //p循环

	if(i<=100)
	{
		sum+=i;
	}
	else{
		goto p1;        //p1循环  
	}
	i++;
goto p;                 //开始p循环
p1:                     //利用p1循环结束p循环
	printf("sum=%d\n",sum);

2.6 continue

	  	int i;
	for(i=1;i<=50;i++) //i=7
	{
		if(i%7==0|| i%10==7)
		{
			continue;
		}
		printf("%d\n",i);
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值