#背景
每行输入两个数字,第一个数字表示幂次,第二个数字表示系数。输入行数不确定。幂次不超过100。
只能运用非常基础的入门C语言知识,不能超纲。
#问题
1、如何解决二维数组行数不确定的问题?(因为我没有办法解决,所以我就假定行数是1024或者更大的已知数了)。
2、当我降序排列完后,如何合并幂次相同的系数?如何删除两个都为0的里数组?(也就是只提取出/剩下有意义的元素值)。
#代码
#include<stdio.h>
#include<stdlib.h>
int max(int a[][2],int len){
int maxid = 0;
int m;
for(m=1;m<len;m++){
if(a[m][0]>a[maxid][0]){
maxid = m;
}
}
return maxid;
}
int main()
{
int input[1024][2]={{0,0}};
int i=0;
int cnt=0;
//记录输入的2个数组
int x,y;
while (1)
{
scanf("%d %d",&x,&y);
if(x>100){
break;
}
input[i][0]=x;
input[i][1]=y;
if (input[i][0]==0){
cnt++;
if (cnt==2)
{
break;
}
}
i++;
}
int len = sizeof(input)/sizeof(input[0]);
int n;
for(n=len-1;n>0;n--){
int maxid = max(input,n+1);
int t = input[maxid][0];
int z = input[maxid][1];
input[maxid][0]=input[n][0];
input[maxid][1]=input[n][1];
input[n][0]=t;
input[n][1]=z;
}