第一次作业
一,pta分支结构7.2输出正整数n
1,实验代码
#include<stdio.h>
#include<math.h>
int main()
{
int n,a;
scanf("%d%d", &n, &a);
if(n <= 10)
{
a = pow(2,n);
printf("2^%d = %d",n,a);
}else{
printf("n");
}
return 0;
}
2,设计思路
(1)算法
这道题是比较基础的一道题,主要的算法就是
第一步:给出一个判断n是否小于等于10。
第二步:如果是的话就计算2的n次幂的结果。
第三步:给出结果。
(2)流程图
(3)本题调试过程碰到问题及解决办法
1,这个分支结构,我选择的题比较简单,但不意味着我很容易就做出来了,也有很多错误。
(1)scanf输入的变量有两个,所以对应的%d也应该有两个,但我只写了一个。
解决方法:加入了一个%d。
(2)在运算过程中接触到了2的x次幂的表达方法pow(2,x)。
解决方法: 通过老师和助教了解到幂的计算方法。
(3)最后的printf后续输出的值应该有一个n和result,但我只给result定义了。
解决方法: 给n定义。
这是我在刚开始做题中遇到的一些错误,都很基础。
二,pta循环一7.1
#include<stdio.h>
int main()
{
int number, i, a, count = 0, sum = 0;
float d;
printf("%d",number);
scanf("%d",&number);
if(number != 0)
{
for(i = 0;i < number;i++)
{
scanf("%d",&a);
sum = sum + a;
if(a <= 60)
{
count++;
}
}
d = sum*1.0/number ;
printf("average = %.1f\n",d);
printf("count = %d",count);
}else{
printf("error");
}
return 0;
}
2,设计思路
(1)算法
第一步:输入共有几人,并判断number的大小,当number非零时执行循环。
第二步:把number的人分数加起来,分数低于60则count = count + 1。
第三步:把总分数除以人数。
第四步:给出平均分与不及格人数。
(2)流程图
(3)本题调试过程碰到问题及解决办法
这道题中,我的错误是没有规避整数除整数的结果还是整数,在改写后,程序计算完才乘以的1.0,已经没有意义了。
解决方法:在sum上乘以1.0。
三pta循环二7.1
1,实验代码
#include<stdio.h>
int main()
{
int n,i,l,min;
scanf("%d",&n);
scanf("%d",&l);
min=l;
for(i=1;i<n;i++)
{
scanf("%d",&l);
if(min>l)
{
min=l;
}
}
printf("min = %d",min);
return 0;
}
2,设计思路
(1)算法
第一步:给最小值min赋值。
第二步:循环输入n个数,当i小于n,输出i代表的l,依次进行直到i>n。
第三步:判断l与min的数值谁更小,把更小的数值赋予min。
第四步:输出最小值min。
(2)流程图
(3)本题调试过程碰到问题及解决办法
1,问题
(1)没有给min赋值。并且赋值不正确。
解决方法:重新给min赋值。
三,
1,
总结:
学习到了c语言基本的表达方式,用计算机的思维看问题。比如最简单的hello world到现在的分支,循环,函数。学习了字符,整数,小数的表达。可以说计算机已经入门了,但是由于我总是分配不好自己的时间,目前保证不了每天都固定打代码。所以说有很多知识都在浅显层次。以后会争取在睡前回顾一下今天所学的知识,保证基本代码的数量,毕竟熟能生巧。
最近刚开始学习c语言,有很多不明白的地方,也错了很多。
(1)总是分不清int与double的区别。
(2)scanf后忘记取地址符。
(3)for循环内没有分号隔开。
(4)整数与整数运算忘记乘1.0。
(5)忘记写return 0;
等等错误。但我相信今后我会更努力,也会更优秀。
2,评论同学作业。
评论魏璇
评论谢雨欣
评论刘洋
3,表格
折线图