标题:[求助]考试题目C++
只看楼主
cilubutong
Rank: 1
等 级:新手上路
帖 子:119
专家分:2
注 册:2007-5-22
结帖率:75%
 问题点数:0 回复次数:13 
[求助]考试题目C++

C++程序设计

一. 编写程序,打印下面的图形:

*
* *
* *
* *
* *
* *
* *
* *
*



:编写程序,从就键盘输入10个学生的成绩,统计最高分,最低分和平均分.

要求:输入的数据首先存入一个数组中,程序中不得改变数组中这些数据的排列顺序;运行时输入下列数据并记录程序的输出结果:

80 92 78 66 75 96 88 85 99 71

:编写程序,打印M阶魔方阵,M为奇数.

分析题意:魔方阵是这样一个方阵,其行,,对角线元素之和均相等,如图1,是一个3阶的模仿阵:

8 1 6

3 5 7

4 9 2

每行各元素之和为15,没列各元素之和为15,对角线之和也为15.

:下面是定义二次多项式a*x+bx+c所对应的类

#include<iostream.h>

#include<math.h>

Class Quadratic

{

double a,b,c;

public:

Quadratic(){a=b=bc=0;}

Quadratic(double aa, Quadratic bb,double cc);

Quadratic opetator +(Quadratic &x);

Quadratic operator-(Quadratic &x);

double compute(double x);

int Root(double &r)1,double &r2);

void Print();

};

其中加,减操作符重载函数完成*thisx的加或减运算,并讲运算结果返回;Compute函数根据x的值计算二次多项式a*x+bx+c的值并返回;Root函数求出二次 方程a*x+bx+c=0的根,要求当不是二次方程( a=0)时返回-1,当有实根时返回1,并由引用参数r1r2带回这两个实根,当无实根时返回0;Print函数按ax**+bx+c的格式(X2X**2表示)输出多次二项式,并且当bc的值为负时,其前面不能出现加号。试写出这个在类定义中声明的每个成员函数在体外的定义

最好是给我个简单我方法和注释下,我是新手

[此贴子已经被作者于2007-6-25 10:15:29编辑过]

搜索更多相关主题的帖子: Times New 
2007-06-25 10:11
yuziguang
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-5-16
得分:0 

2007-06-25 10:15
jiushiwo
Rank: 1
等 级:新手上路
帖 子:170
专家分:0
注 册:2007-3-10
得分:0 

做你自己! everything will go! lanfei_1234@
2007-06-25 11:11
游乐园
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:671
专家分:0
注 册:2006-11-1
得分:0 

1.


#include<iostream>
#include<cmath>
using namespace std;
const int N = 5;
int main()
{
int i,j;
for(i=-N; i<=N; i++, cout<<endl)
for(j=-N; j<=N; j++)
( abs(i)+abs(j) == N ) ? cout<<\"*\" : cout<<\" \";
return 0;
}


2.


#include<iostream>
#include<algorithm>
using namespace std;
template<class T>
T averageScore(T a[],int n)
{
T sum =0;
for(int i=0; i<n; i++) sum+=a[i];
return sum/n;
}

const int N = 10;

int main()
{

int record[N];
for(int i=0; i<N; ++i) cin>>record[i];
copy(record,record+10,ostream_iterator<int>(cout,\" \"));
cout<<\"\nmax score is: \"<<*max_element(record,record+10);
cout<<\"\nmin score is: \"<<*min_element(record,record+10);
cout<<\"\naverage score is: \"<<averageScore(record,N)<<endl;
return 0;
}


unicorn-h.spaces. ◇◆ sava-scratch.spaces.
2007-06-25 12:30
cilubutong
Rank: 1
等 级:新手上路
帖 子:119
专家分:2
注 册:2007-5-22
得分:0 

谢谢了!虽然有点看不懂但我会努力去看的


全国最大的网上服装批发[url]www.[/url]
2007-06-25 13:05
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 

难得看到游乐园大哥贴代码也!

我也来个:
3,奇数阶魔方

[CODE]#include <iostream>
using namespace std;
const int side_length = 3;

int main(){
int magic_square[side_length][side_length];
//set all the position to 0
for (int i = 0;i < side_length;++i){
for (int j = 0;j < side_length;++j)
magic_square[i][j] = 0;
}
int r = 0,c = side_length / 2;
//set a fixed position to number '1'
magic_square[r][c] = 1;
for (int num = 2;num <= side_length * side_length;++num){
int cpy_r = r,cpy_c = c;
//if index out of the square then comedown(r<0) or come right(c<0)
r - 1 < 0 ? r = side_length - 1 : --r;
c - 1 < 0 ? c = side_length - 1 : --c;
if (magic_square[r][c] != 0){ //the position have been set
cpy_r + 1 > side_length - 1 ? r = 0 : r = cpy_r + 1;
c = cpy_c;
}
//set number num to the right position
magic_square[r][c] = num;
}
//display the magic square
for (i = 0;i < side_length;++i){
for (int j = 0;j < side_length;++j){
if (magic_square[i][j] < 10)
cout << " ";
cout << magic_square[i][j] << " ";
}
cout << endl << endl;
}
return 0;
}[/CODE]


Fight  to win  or  die...
2007-06-25 13:29
cilubutong
Rank: 1
等 级:新手上路
帖 子:119
专家分:2
注 册:2007-5-22
得分:0 
还有个谁帮我做下啊

全国最大的网上服装批发[url]www.[/url]
2007-06-26 15:38
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
得分:0 

/*奇数阶幻方*/
#include <stdio.h>
#define MAX 15

int main(void)
{
 int m,mm,i,j,k,ni,nj;
 int magic[MAX][MAX];
 printf(\"Enter the number you wanted\n\");
 scanf(\"%d\",&m);
 for(i = 0;i < m;i ++) //初始化
  for(j = 0;j < m;j ++)
   magic[i][j] = 0;
 if((m > 0)&&(m % 2 != 0))//奇数阶
 {
  mm = m * m;
  i = 0;//第一个值的位置
  j = m / 2;
  for(k = 1;k <= mm;k ++)
  {
   magic[i][j] = k;
   //求右上方方格的坐标
   if(i == 0)//最上一行
    ni = m - 1;//下一个位置在最下一行
   else
    ni = i - 1;
   if(j == m - 1)//最右端
    nj = 0;//下一个位置在最左端
   else
    nj = j + 1;
   //判断右上方方格是否已有数
   if(magic[ni][nj] == 0)//右上方无值
   {
    i = ni;
    j = nj;
   }
   else //右上方方格已填上数
   i ++;
  }
  for(i = 0;i < m;i ++)
  {
   for(j = 0;j < m;j ++)
    printf(\"%4d\",magic[i][j]);
    printf(\"\n\");
  }
 }
else //m<=0或m_是偶数
printf(\"Error in input data.\n\");
return 0;
}

Viva,espana!
2007-06-26 17:24
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
终于可以发贴了。

最后个题目已经有类定义和函数接口了,楼主应该可以自己完成。

[此贴子已经被作者于2007-6-26 17:46:22编辑过]


Fight  to win  or  die...
2007-06-26 17:44
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
得分:0 
嘿嘿,我看你那么喜欢比卡丘,就贴了个妙蛙花

Viva,espana!
2007-06-26 17:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-150074-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.533758 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved