第一题:
#include<stdio.h>
int main()
{
int i=;
int sum=;
while(i<=){
sum=sum+i;
i++;
}
printf("sum = %d\n",sum);
return ;
}
第一步:由题意可得,此题需要使用while循环语句,所以首先定义两个整型变量i=1,和sum=0。
第二步:定义完变量后,使用while语句,设置i的范围小于等于100,并在循环语句中添加sum=sum+i,i++。
第三步:循环一百次后输出结果即可。
PTA输出结果:
DEV C++输出结果:
流程图:
第二题:
#include <stdio.h>
int main()
{
int N;
int i=;
scanf("%d",&N);
double S;
double sum=0.000000;
while(i<=N){
S = 1.0/(*i-);
sum=sum+S;
i++;
}
printf("sum = %.6lf\n",sum);
return ;
}
第一步:由题意可得,此题需要定义两个整型变量i=1,N,和两个双倍精准度变量sum,S。
第二步:利用while语句对s=1.0/(2*i-1),sum=sum+S,i++进行循环,直到i<=N,才结束。
第三步:输入N的值则可得到相应的答案。
PTA结果显示:
错误显示
DEVC++显示:
第三题:
#include<stdio.h>
int main(){
int i,N;
scanf("%d",&N);
double sum=;
int flag=-;
for(i=;i<=N;i++){
flag=-flag;
sum=sum+i*1.0/(*i-)*flag;
}
printf("%0.3f",sum);
return ;
}
第一步:由题意得,需要定义两个整型变量i,N,设置输入N的语句。
第二步:定义双倍精准度变量sum,和一个flag=-1。
第三步:利用for循环语句第一步使得flag的-1变成1,然后进行运算第一个1.0/(2*i-1)*flag的公式,依次循环到第N次,输出结果。
错误截图:
最后正确截图:
遇到的错误:
1:变量定义的型没有看明白。
2:带小数的没有乘以1.0.
流程图:
第四题:
#include<stdio.h>
int main(void)
{
int n,i,l,min;
scanf("%d",&n);
scanf("%d",&l);
min=l;
for(i=;i<n;i++){
scanf("%d",&l);
if(min>l)
min=l;
}
printf("min = %d",min);
return ;
}
第一步:由题意判断,此题需要定义四个量分别为n,i,l,min,n为输入多少数据,min为最小值。
第二步:利用for循环语句,循环体为在i=1,i<=n的范围内,循环n次,每次输入一个值l,如果min大于l则将l的值赋值给min,以此类推,每次都将小的值赋值给min。
第三步:输入相应的数值,则可得到答案。
PTA结果显示:
DEXC++显示:
流程图:
第五题:
#include <stdio.h>
int main(){
int i,n;
double total=,grade;
int count=;
scanf("%d",&n);
for(i=;i<=n;i++)
{
scanf("%lf",&grade);
if (grade>=) count=count+;
total=total+grade;
}
if(n==)
printf("average = 0.0\n");
else
printf("average = %.1f\n",total/n);
printf("count = %d",count);
return ;
}
第一步:由题意得,定义三个整型变量i,n,count=0,和两个双倍精准度变量total=0,grade。
第二步:输入n的值,利用for循环语句来求所有成绩的和,并加入一个if条件语句判断输入的值是否大于等于60,如果小于则记做一次次数。
第三步:输入所有成绩,则可得出所有成绩之和,以及不及格人数。
错误:
正确:
流程图:
本周学习内容:
1:复习了while,do while,和for循环语句,学习了break,continue语句和flag标志的知识。
难点:
每一个只知识都是难点,我还是需要多加练习才能熟悉的掌握他们。
评论的人:
1:http://www.cnblogs.com/lin2580/p/7841437.html