(1)输入一个年份,判断是否为闰年,并输入该年份共有多少天。
要求:画出算法流程图或N-S图。运行程序后:输出年份是/否为闰年,该年有多少天。
(3)输入三角形的三条边长,判断能否构成三角形,若能,判断是否等边、等腰三角形,同时判断是直角、锐角还是钝角三角形。
要求:画出算法流程图或N-S图。运行程序后:先提示“输入三角形的三个边长:”,输入的三个数据用逗号分隔,判断输入的三边长能否构成三角形(任意两边和大于第三边),程序运行界面如下图所示。
这两题的代码写出来了,可是不会画算法流程图和N-S图。
百度搜“C代码自动生成流程图”
题目:
问题:
给定一个由n行数字组成的数字三角形,如下图所示:
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大(每一步只能从一个数走到下一层上和它最近的左边的数或者右边的数)。
输入:
第一行是数字三角形的行数,接下来 n 行是数字三角形中的数字。
比如:
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
输出:
输出这个最大值。
这里只给出代码,步骤分析看链接:步骤详解
代码实现:
代码注释的部分构成方法二
#include<stdio.h>
#include<math.h>
#include <windows.h>
#define N 5
int a[6][6];
int sum[6][6];
int sum_two[6];
int main()
{
int i,j;
for (i=1;i<=5;i++)
for (j=1;j<=i;j++)
scanf("%d",&a[i][j]);
for (i=1;i<6;i++)
{
sum[5][i] = a[5][i];
// sum_two[i] = a[5][i];
}
for (i=5-1;i>=1;i--)
for (j=1;j<=i;j++)
{
sum[i][j] = max(sum[i+1][j],sum[i+1][j+1]) + a[i][j];
//sum_two[j] = a[i][j] + max(sum_two[j],sum_two[j+1]);
}
for (i=1;i<6;i++)
{
for (j=1;j<=i;j++)
printf("%3d",sum[i][j]);
printf("\n");
}
//printf("%d",sum_two[1]);
return 0;
}