代码改变世界

C语言第三次博客作业---单层循环结构

2017-11-02 21:46  小厮sir  阅读(226)  评论(1编辑  收藏  举报

一、PTA实验作业

题目1

1.实验代码

#include<stdio.h>
int main(){
    int N,i;
    double h;       //h定义身高
    char s;           //s代表性别
    scanf("%d",&N); //为查询的用户数
    for(i=0;i<N;i++)
    {
        scanf(" %c%lf",&s,&h); //输入性别,身高
        if(s=='F')
        printf("%.2f\n",h*1.09);//性别为女生的情况
    else if(s=='M')
        printf("%.2f\n",h/1.09);//性别为男生的情况
        }
        	return 0;
	}

2 设计思路

1.h定义身高s代表性
别n为查询的用户数
2.输入性别,身高
3.性别为女生的情况h*1.09
性别为男生的情况h/1.09)

3.本题调试过程碰到问题及解决办法



等号没写导致只有部分真确,后来注视了后一句发现了这个问题

4.本题PTA提交列表

题目2

1.实验代码

#include<stdio.h>
 main()
{
int a,n,s,i,sum;  /*n个a,sum存放第I项的数值,s存放总数值*/
    scanf("%d%d",&a,&n);
    s=0;
    sum=0;
    for(i=1;i<=n;i++){
     sum=sum*10+a; /*各项的和*/
     s=s+sum;           /*表示总和*/
    }
    printf("s = %d",s);
}

2 设计思路

1.n个a,sum存放第I项的数值,s存放总数值
2.采用for循环
3.计算式sum=sum*10+a;
s=s+sum;
4.以s = %d的格式输出

3.本题调试过程碰到问题及解决办法



两个计算式没有分开写

4.本题PTA提交列表

题目3

1.实验代码

#include<math.h>
int main(void){
int min,i,n,num;                    /*min代表最小值,num表示输入的数值*/
scanf("%d",&n);
min=num;
if(n>1)
{
for(i=1;i<n;i++)
{
    scanf("%d",&num);
    if(min>num)                    /*判断两者的大小*/
    min=num;                         /*根据条件进行互换*/
}
printf("min = %d",min);
}
else if(n==1)
{  
    scanf("%d",&num); 
printf("min = %d",num);
}
else
printf("no");
return 0;
}

2 设计思路

1.定义min代表最小值,num代表输入的数值
2.将nu与min进行比较
3.若小于min则将num的值付给min
4采用判断语句,当输入的数据只有一个时候直接输出这个数字的值

3.本题调试过程碰到问题及解决办法


未考虑到只输入一个数值是,所以导致部分错误

4.本题PTA提交列表

题目4

1.实验代码


#include<stdio.h>
int main(void)
{
	int num,n;//给出一个正整数num,猜测的最大整数整n
	int inp;
	int finished=0;
	int cnt=0;
	scanf("%d %d",&num,&n);//输入个正整数num,猜测的最大整数整n
	do{
		scanf("%d",&inp);
		cnt++;
		if(inp<0){       //inp为负数时
			printf("Game Over\n");
			finished=1;
		}else if(inp>num){
			printf("Too big\n");
		}else if(inp<num){
			printf("Too small\n");
		}else{
			if(cnt==1){
			printf("Bingo!\n");
			}
		else if(cnt<=3){
			printf("Lucky You!\n");
		}else{
			printf("Good Guess!\n");
		}
		finished=1;
	}
	if(cnt==n){
		if(!finished){
			printf("Game Over\n");
			finished=1;
		}
	}
}
	while(!finished);
	return 0;
}





2 设计思路

1.给出一个正整数num,猜测的最大整数整n
2.输入个正整数num,猜测的最大整数整n
3.分别输出每一种情况
Game Over
Too big
Too small
Bingo!
Lucky You!
Good Guess!

3.本题调试过程碰到问题及解决办法

这个题思路不太清晰是参考了网上的答案才能编写出来

4.本题PTA提交列表

二、截图本周题目集的PTA最后排名

三、本周学习总结(1分)

1.你学会了什么?

1.学会了使用for语句当while语句不太熟悉
2.能够使用break
3.能够把循环语句和分支结构放在一起使用

2.本周的内容,你还不会什么?

对字符变量不熟悉有点混淆;循环结构搞不清楚循环在哪;

3.分支结构上机考试总结。

1.对一些基本的语句不熟悉,字符的定义忘了2.分支结构中switch的使用不熟悉3.在定义变量时定义的不准确,例如有些字符可以用printf输出而我却定义他,还有就是总是会少定义变量;