C++程序设计实践指导1.12数组中数据线性变换改写要求实现

改写要求1:分别用指针pa、pb代替数组

改写要求2:从键盘输入data元素 元素个数任意,输入0结束

#include <cstdlib>
#include <iostream>

using namespace std;
class DATA
{
      double *pa,*pb;
      double max,min;
      double new_max,new_min;
      int length;
      public:
             DATA(double a1[],double x,double y,int len)
             {
                  int i;
                  length=len;
                  pa=new double[len];
                  pb=new double[len];
                  for(i=0;i<length;i++)
                          pa[i]=a1[i];
                  new_max=x;
                  new_min=y;
                  max=min=pa[0];
                  for(i=0;i<length;i++)
                  {
                     if(pa[i]>max)
                     max=pa[i];
                     if(pa[i]<min)
                     min=pa[i];
                  }
             }
             void fun();
             void print()
             {
                  while(*pa!=‘\0‘)
                  cout<<*pa++<<‘\t‘;
                  cout<<endl;
                  cout<<"["<<new_min<<","<<new_max<<"]"<<endl;
                  while(*pb!=‘\0‘)
                  cout<<*pb++<<endl;
             }
};
void DATA::fun()
{
     for(int i=0;i<length;i++)
      pb[i]=(pa[i]-min)*(new_max-new_min)/(max-min)+new_min;
}
int main(int argc, char *argv[])
{
    int i,j=0;
    cout<<"输入元素个数"<<endl;
    cin>>i;
    double *data=new double[i+1];
    int x,y;
    cin>>data[0];
    while(data[j])
    {
           j++;
           cin>>data[j];
    }
    while(*data!=‘\0‘)
    cout<<*data++<<‘\t‘;
    cout<<endl;
    cout<<"输入x,y"<<endl;
    cin>>x>>y;
    DATA test(data,x,y,i);
    test.fun();
    test.print();
    system("PAUSE");
    return EXIT_SUCCESS;
}
时间: 2024-10-13 20:20:18

C++程序设计实践指导1.12数组中数据线性变换改写要求实现的相关文章

C++程序设计实践指导1.13自然数集中找合数改写要求实现

改写要求1:用单链表实现 改写要求2:析构函数中依次将链表结点删除 #include <cstdlib> #include <iostream> using namespace std; struct LinkNode { int data; LinkNode* next; }; class NOPRIME { friend struct LinkNode; LinkNode* Head; int n; public: NOPRIME(int n1) { n=n1; } void

对数组中数据的大小排序

现有一组数据,需要对其进行从小到大的进行排序 1:冒泡法排序,时间复杂度O(n2) public class popSort{    public static void main(String[] args) { int[] arr={1,161,151,2,5,6,7,46,4,22,545,232,11,58};        int len = arr.length;        for(int i=0;i<len-1;i++){ for(int j=0; j<len-i-1;j++

在一组降序排列的数组中插入一个数据,插入后,数组中数据依然按降序排列

分析: 1.数组固定,是一个倒序的数组 2.插入一个数据,这个数据插在哪呢,要比较,与数组中所有的元素比较,这里需要一个循环,因为是降序的数组,所以当第一次遇到比自己小的,那么这个位置就是要插入的位置 3.因为上一步被占了位置,那么从这个插入的数据开始,后面的原本的数据都得向右移一位 /** * */ package com.cn.u4; import java.util.Scanner; /** * @author Administrator *向有序数组中插入学员成绩 * 在一组降序排列的数

OC字典存入数组,输出数组中数据,并且删除小明一项,然后进行排序、现根据班级排序,班级相同的用年龄进行排序

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSDictionary *[email protected]{@"name":@"小阳", @"class":@"IOS8", @"age":@"20" }; NSDictionary

C++程序设计实践指导1.10二维数组元素换位改写要求实现

改写要求1:改写为以单链表和双向链表存储二维数组 改写要求2:添加函数SingleLinkProcess()实现互换单链表中最大结点和头结点位置,最小结点和尾结点位置 改写要求3:添加函数DoubleLinkProcess()实现互换双向链表中最大结点和头结点位置,最小结点和尾结点位置 #include <cstdlib> #include <iostream> using namespace std; #define M 3 #define N 4 struct SingleLi

C++程序设计实践指导1.9统计与替换字符串中的关键字改写要求实现

改写要求1:将字符数组str改为字符指针p,动态开辟存储空间 改写要求2:增加统计关键字个数的函数void CountKeyWords() 改写要求3: 增加替换函数void FindKeyWords() #include <cstdlib> #include <iostream> #include <string> using namespace std; class WORDNUM { char *p; double c; public: WORDNUM(char

C++程序设计实践指导1.6超长数列中n个数排序改写要求实现

改写要求1:将以上程序改写为适合超长整数 改写要求2:将以上程序改写为适合超长数列 改写要求3:将数列中指定位置m开始的n个结点重新按降序排序 改写要求4:输出指定位置m开始的n个结点的超长整数 #include <cstdlib> #include <iostream> #include <string> using namespace std; struct LongIntegerNode { short int data; LongIntegerNode *nex

C++程序设计实践指导1.2二维数组的操作运算改写要求实现

改写要求1:改写为以单链表表示二维数组 #include <cstdlib> #include <iostream> using namespace std; struct LinkNode { int Row; int Column; int Data; LinkNode *next; }; class MATRIX { int m; int sum; public: struct LinkNode* creat(int x[][40],int k) { m=k; LinkNod

C++程序设计实践指导1.1删除序列中相同的数改写要求实现

改写要求1:改写为以指针为数据结构 #include <iostream> #include <cstdlib> using namespace std; class ARP { int m; int* p; int count[10]; public: ARP(int x[],int size) { m = size; p = new int [m]; for (int i =0;i<m;i++) { p[i]=x[i]; } for (int i =0;i<m;i+