开始 输入年月日 判断是否为闰年 按月选择计算 输出结果 结束
源程序代码:
#include
int ping[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; int run[] = {0,31,29,31,30,31,30,31,31,30,31,30,31};
bool f(int year) {
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) return true; return false; }
int main() {
int year,month,day,i,j;
while(~scanf(\ {
if((year == 0 || month == 0 || day == 0) || (month == 2 && day>29) ||
(run[month] (!(year%4 == 0 && year0 != 0 ||year@0 == 0)&&month == 2 && day == 29) ) { printf(\ continue; } if(f(year)) for(j = 0,i = 1;i for(j = 0,i = 1;i printf(\ } return 0; } 程序执行结果(拷屏): 源程序文件名: 第二天第三题.cpp 6.用最小二乘法求解方程组的近似解 2x+4y =11 3x-5y=3 x+2=6 4x+2y=14 程序编制要点(知识点、程序框图): 开始 输入矩阵形式的各项系数 运用最小二乘法得到正则方程 用雅可比迭代法解正则方程组 输出方程组的解 结束 源程序代码: #include int main () { start: int m,n,i,j,k; double sum ,cha,cha1,jing=0.000001; char ch; cout << \输入方程个数\ cin >> m; cout << \输入未知数个数\ cin >> n; double * a = new double [m*n]; double * at = new double [m*n]; double * ata = new double [n*n]; double * b = new double [m]; double * atb = new double [n]; double * x = new double [n]; cout << \请输入化简后系数矩阵,不包含常数项\for (i=0;i cout << \请输入化简后右侧常数项\for (i=0;i for (i=0;i at[j*m+i]=a[i*n+j]; } for (i=0;i for (k=0,sum=0;k sum = sum + at[i*m+k] * a[k*n+j]; ata[i*n+j] = sum; } for (i=0;i for (j=0,sum=0;j sum = sum + at[i*m+j] * b [j]; atb[i] = sum; } for (i=0;i x[i]=1; } for (cha=1;cha>jing;) { cha1= x[0]; for (i=0;i for (j=0,sum=0;j if (i==j) continue; sum = sum + ata [i*n+j]*x[j]; } x[i]=(atb[i]-sum)/ata[i*n+i]; } if (cha1 > x[0]) cha = cha1 -x[0]; else cha = x[0] - cha1; } if (n==2) { cout << \ } else { for (i=0;i cout << \ } } delete []a; delete []at; delete []ata; delete []atb; delete []b; delete []x; cout << \是否继续?y/n\ cin >> ch; if (ch=='y') goto start; return 0; } 程序执行结果(拷屏):