T1
摘抄:1.不要描述显而易见的现象, 永远不要 用自然语言翻译代码作为注释, 除非即使对深入理解 C++ 的读者来说代码的行为都是不明显的. 要假设读代码的人 C++ 水平比你高, 即便他/她可能不知道你的用意:
2.通常, 单行语句不需要使用大括号, 如果你喜欢用也没问题; 复杂的条件或循环语句用大括号可读性会更好. 也有一些项目要求 if 必须总是使用大括号:
3.基本上每个函数声明处前都应当加上注释, 描述函数的功能和用途. 只有在函数的功能简单而明显时才能省略这些注释
关于代码缩进:
代码整体更加整洁,更加具有可读性(老师可以通宵看1000000000行),也方便后期的检查,避免造成误读
T2
运用for循环
#include <stdio.h>
int main()
{
int a=0,b=1,n=0;
scanf ("%d",&n);
for (a = 1 ;a <= n; a++) {
b=b*a;
}
printf ("%d的阶乘为%d\n", n, b);
return 0;
}
运用while循环
#include<stdio.h>
int main()
{
int i=1,n=0;
int sum=1;
scanf("%d",&n);
while(i<=n)
{
sum=sum*i;
i++;
}
printf("%d的阶乘是%d",n,sum);
}
运用do while循环
#include<stdio.h>
int main()
{
int t=0,n=0,sum=1;
scanf("%d",&n);
t=n;
if(n>0)
{
do
{
sum*=n;
n--;
}while(n);
}
printf("%d的阶乘是%d\n",t,sum);
return 0;
}
都是一样的结果,所以只放一张终端的图老师应该不会介意吧
T3
老师我不会
T4
#include <stdio.h>
int main()
{
int i=0, n=0, t1 =1, t2 = 1, nextTerm=0;
printf("输出多少项: ");
scanf("%d", &n);
printf("斐波那契数列%d项: ",n);
for (i = 1; i <= n; ++i)
{
printf("%d ", t1);
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
return 0;
}
这题的难点主要是在算法的设计上,首先找到数列的规律,从第三项开始为前两项的和,也用了一个空闲变量t2去储存下一个项的值,等下一次进循环时候输出即可
附加题
#include<stdio.h>
int main()
{
int x;
scanf("%d", &x);
int digit;
int ret=0;
while ( x>0 ) {
digit=x%10;
ret = ret*10 + digit;
x /=10;
}
printf("%d",ret);
return 0;
}
这题其实主要是整数拆解之后的整理,只要将拆解出来的数字左移一位,就是将上一个数组用*10再加上这一次拆解的数字即可