第7周编程练习 (★★★)
1:多项式加法
#include<stdio.h> int main() { int poly[101]={0}; //定义一个数组,以下标表示多项式的指数,储存数值为系数 int indexTemp; //指数 int coefTemp; //系数 int cnt=0; //计数器 do { scanf("%d %d",&indexTemp,&coefTemp); poly[indexTemp] = poly[indexTemp] + coefTemp; //把指数相同的系数加起来 if(indexTemp==0) cnt++; //cnt每加一表示一个多项式输入完毕 } while (cnt<2); //两个多项式输入完毕 int jia = 0 ; //用 jia 的值判断是否输出 + 号,0表示不输出,1表示输出 int i=100; //从多项式的最高项开始 while (i>=0) { if (poly[i] != 0) //多项式系数为 0 ,不用输出 { if (jia==1) printf("+"); if (i!=0) // 0 次幂不输出指数,只输出系数 { if(i!=1) //指数为 1 时不输出指数 { printf("%dx%d",poly[i],i); }else printf("%dx",poly[i]); } else // 0 次幂不输出指数,只输出系数 { printf("%d",poly[i]); } jia=1; //第一项后加上 + 号 } i--; } return 0; }
2:鞍点
#include<stdio.h> int main() { int num[100][100]={0,0}; int n = 0; scanf("%d",&n); int i,j; for(i=0;i<n;i++) //给二维数组赋值 { for(j=0;j<n;j++) { scanf("%d",&num[i][j]); } } int max,flag = 0; for(i=0;i<n;i++) { max = num[i][0]; for(j=0;j<n;j++) { if(num[i][j]>max) max=num[i][j]; //找出了每一行的最大值 } for(j=0;j<n;j++) { if(num[i][j]==max) { int min = num[i][j]; int l=0; for(l=0;l<n;l++) { if(num[l][j]<min) min=num[l][j]; } if(num[i][j]==min) { printf("%d %d",i,j); flag = 1; } } } } if (flag == 0) printf("NO\n"); return 0; }