#include #include<math.h> using namespace std; const int maxn=10005; //定义常量maxn为10005 float a[maxn]; //定义浮点数组a,大小为maxn int b1[maxn]; //定义整型数组b1,大小为maxn float b2[maxn]; //定义浮点数组b2,大小为maxn float c[maxn]; //定义浮点数组c,大小为maxn int main() { int n1,first; //定义整型变量n1和first cin>>n1; //输入n1的值 for(int i=0;i<n1;i++) //循环n1次 { int tmp; //定义整型变量tmp cin>>tmp; //输入tmp的值 cin>>a[tmp]; //输入a[tmp]的值 if(!i) first=tmp; //如果i为0,则将tmp的值赋给first } int n2; //定义整型变量n2 cin>>n2; //输入n2的值 for(int i=0;i<n2;i++) //循环n2次 cin>>b1[i]>>b2[i]; //输入b1[i]和b2[i]的值 for(int i=first;i>=b1[0];i--) //循环i从first到b1[0] { int tmp=i-b1[0]; //定义整型变量tmp为i-b1[0] c[tmp]=a[i]/b2[0]; //计算c[tmp]的值 for(int j=0;j<n2;j++) //循环n2次 a[tmp+b1[j]]-=c[tmp]*b2[j]; //计算a[tmp+b1[j]]的值 } int cnt1=0,cnt2=0; //定义整型变量cnt1和cnt2,初始值为0 for(int i=first;i>=0;i--) //循环i从first到0 { if(fabs(c[i])>=0.05) cnt1++; //如果fabs(c[i])>=0.05,则cnt1加1 if(fabs(a[i])>=0.05) cnt2++; //如果fabs(a[i])>=0.05,则cnt2加1 } cout<<cnt1; //输出cnt1的值 for(int i=first;i>=0;i--) //循环i从first到0 { if(fabs(c[i])>=0.05) printf(" %d %.1f",i,c[i]); //如果fabs(c[i])>=0.05,则输出i和c[i]的值 } if(!cnt1) cout<<" 0 0.0"; //如果cnt1为0,则输出" 0 0.0" cout<<endl; //输出换行 cout<<cnt2; //输出cnt2的值 for(int i=first;i>=0;i--) //循环i从first到0 { if(fabs(a[i])>=0.05) printf(" %d %.1f",i,a[i]); //如果fabs(a[i])>=0.05,则输出i和a[i]的值 } if(!cnt2) cout<<" 0 0.0"; //如果cnt2为0,则输出" 0 0.0"

在该程序中给出注释#includeiostream#includemathhusing namespace std;const int maxn=10005;float amaxn;int b1maxn;float b2maxn;float cmaxn;int main	int n1first;	cinn1;	forint i=0;in1;i++			int tmp;		cintmp;		cina

原文地址: https://www.cveoy.top/t/topic/iCAl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录