一、PTA实验作业
题目1:7-2 最佳情侣身高
专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。
下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。
1.代码
int N,i;
double H,height; // H输入身高,height情侣身高
char sex;//sex为性别
scanf("%d",&N);
for(i=1;i<=N;i++)
{
scanf("
%c%lf",&sex,&H);
if (sex=='F')
{
height=H*1.09;
printf("%.2f
",height);
}
else
{
height=H*1.00/1.09;
printf("%.2f
",height);
}
}
2.设计思路
1.定义整型变量N,i,以及双精度浮点型变量H,height,以及字符型变量sex
2.输入正整数N,选择输入次数,及循环次数
3.利用for的循环语句,分别输入N次性别与身高
4.利用if-else语句,若为男性,则最佳情侣身高为height=H1.00/1.09,并且输出;
5否则最佳情侣身高为 height=H1.09,并且输出;
3.本题调试过程碰到问题及解决办法
无明显错误,以下为调试过程
4.本题PTA提交列表
题目2:
给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
1.代码
int a,n,i,total,count,sum; //a,n为正整数 count计算位数,sum计算总数
scanf("%d%d",&a,&n);
total=0;
count=1;
sum=a;
for(i=1;i<=n;i++)
{
total=total+sum;
count=count*10+1;
sum=a*count;
}
printf("s = %d",total);
2.设计思路
1.定义整型变量a,n,i,total,count,sum
2.输入正整数a和n
3.设定total初始值为0.count初始值为1,sum=a
4.利用循环语句,累加total n次
5.利用公式,sum代表单位数值
6累加total 得出结果并输出答案
3.本题调试过程碰到问题及解决办法
无明显错误,以下为调试过程
4.本题PTA提交列表
题目3:找出最小值
本题要求编写程序,找出给定一系列整数中的最小值。
1.代码
int number,N,i,min; //number为输入的数字,N为输入数量,i用于计算循环次数,min储存最小值
scanf("%d",&N);
scanf("%d",&min);
for(i=1;i<=N-1;i++)
{
scanf("%d",&number);
if(number<min)
{
min=number;
}
}
printf("min = %d",min);
2.设计思路
第一步:定义整型变量 number,N,imin
第二步:输入整数N
第三步;输入第一个值,定义为目前最小值
第四步;利用循环语句,依次输入一系列整数,并用if语句对整数进行比较,若小于min,则该数取代min成为最小值
第五步;输出最小值
3.本题调试过程碰到问题及解决办法
1.起初没有将第一个数设置为最小数,导致程序编写错误,在舍友帮助下将第一个数字设置于循环外,成功设置为最小值
2.调试截图
4.本题PTA提交列表
题目4:
猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。
1.代码
int number,N,number2,i;。//number为被猜数,N为猜测次数,number2为输入的数字
scanf("%d%d",&number,&N);
for(i=1;i<=N+1;i++)
{
scanf("%d",&number2);
if(i<=N)
{
if(number2==number)
{
if(i==1)
{
printf("Bingo!");
break;
}
if(i==2)
{
printf("Lucky You!");
break;
}
if(i==3)
{
printf("Lucky You!");
break;
}
if(i==N)
{
printf("Good Guess!");
break;
}
if(i>N)
{
printf("Game Over");
break;
}
}
if(number2<0)
{
printf("Game Over");
break;
}
if(number2>number&&i<=N)
{
printf ("Too big
");
}
if(number2<number&&i<=N)
{
printf ("Too small
");
}
}
else
{
printf("Game Over");
break;
}
}
2.设计思路
第一步:定义整型变量number,number2,N,i
第二步:输入被猜数以及猜测次数
第三步:利用if分支结构,先判断用户猜测次数是否超过了给定的判断次数
第四步:若不超过,则再利用if分支结判断测正确所用次数并且按照题目要求对不同猜测次数输出不同答案
第五步:若超过,则按照题目要求输出答案
第六步:再次利用if分支结构,判断输入过程中数字与被猜数的大小关系并且输出提示,并判断该数是否为0,若为0直接结束并且输出提示
3.本题调试过程碰到问题及解决办法
1.程序分支过多,导致尝试许多次才完成编程
2.编程过程中遗漏了许多条件,在多次观察,检查后完成
3.未使用break导致程序提前结束
4.本题PTA提交列表
二、截图本周题目集的PTA排名。
PTA排名
1.你学会了什么?
1.break以及continue语句的使用。
2.3种if语句分支结构的差别以及使用方法
3.如何输入字符以及输出字符,以及字符对应的代码意义
2.你还不会什么
1.getchar的具体意义
2.如何简化代码
3.算法写得不够好
3.你碰到什么困难,打算如何解决?
1.编程时对于代码的设计有点迷茫,还需要多做题目来联系
2.打码时误用中文的标点符号
3.if嵌套语句使用的不够熟练 需要多练习