作者sdg85732 (wei)
看板NTUBIME102HW
标题[C++ ] 考古题(後半答案)
时间Wed Jan 13 22:49:59 2010
这是学长姐留下来的答案
大家可以当作参考
【第五题】
#include <iostream>
#include <conio.h>
#include <stdio.h>
main(int argc, char* argv[])
{
float A=0.;
for(int i=1;i<=50;i++)
A=A+ i*i/(i*(i+1.0));
cout << A;
}
____________________________________________________________________
【第六题】
#include <iostream>
#include <conio.h>
#include <stdio.h>
void main(int argc, char* argv[])
{
int a[15]={25,34,13,67,6,14,37,7,8,11,21,15,28,4,10};
int i,tmp,pass;
cout << "排序前:" << endl;
for(i=0;i<=14;i++)
cout << a[i] << "," ;
for(pass=0;pass<14;pass++)
for(i=0;i<14;i++)
if(a[i]>a[i+1])
{
tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
cout << "排序後:" << endl;
for(i=0;i<=14;i++)
cout << a[i] << "," ;
cout << "\nPress any key to continue...\n";
getch();
}
_________________________________________________________________
【第七题】
#include <iomanip.h>
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
int **T(int **X);
int M,N;
int **A,**B;
void main(int argc, char* argv[])
{
cout << "请输入矩阵A之列数M=?";
cin >> M;
cout << "\n请输入矩阵A之行数N=?";
cin >> N;
//产生M列N行之A矩阵
A =new int*[M];
for(int n=0;n<M;n++)
A[n] = new int[N];
//输入A矩阵之各元素值
for(int i=0;i<M;i++)
{
cout << "\n请输入第" << i <<"列之" << N <<"个元素(中间以空白隔开):";
for(int j=0;j<N;j++)
{
cin >> A[i][j];
}
}
//show A 矩阵
cout << "A 矩阵=\n";
for(i=0;i<M;i++)
{
for(int j=0;j<N;j++)
cout << setw(3)<< A[i][j];
cout <<endl;
}
B=T(A); //将A矩阵作转置後传给B
//show B 矩阵
cout << "\n转置後之 B 矩阵=\n";
for(i=0;i<N;i++)
{
for(int j=0;j<M;j++)
cout << setw(3)<< B[i][j];
cout <<endl;
}
cout << "\nPress any key to continue...\n";
getch();
}
int **T(int **X)
{
int **Y;
//产生N列M行之Y矩阵
Y =new int*[N];
for(int n=0;n<N;n++)
Y[n] = new int[M];
for(int i=0;i<M;i++)
for(int j=0;j<N;j++)
Y[j][i]=X[i][j];
//传回转置後之矩阵
return Y;
}
_________________________________________________________________
【第八题】
#include <iostream.h>
#include <iomanip.h>
void main()
{
int i, j;
int a[5][5], b[5][5];
cout << "请输入5x5阵列的各元素值" << endl;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
cout << "第" << i+1 << "列 第" << j+1 << "行 : ";
cin >> a[i][j];
}
cout << endl << "平滑化处理结果:" << endl;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==0 || i==4 || j==0 || j==4)
b[i][j] = a[i][j];
else
{
b[i][j] = (a[i-1][j-1] + a[i][j-1] + a[i+1][j-1] +
a[i-1][j] + a[i][j] + a[i+1][j] +
a[i-1][j+1] + a[i][j+1] + a[i+1][j+1])/9;
}
cout << setw(3) << b[i][j];
}
cout << endl;
}
}
_________________________________________________________________
【第九题】
#include<iostream>
#include<fstream>
using namespace std;
ofstream outfile("FINAL.DAT", ios::out);
class Date
{
public:
void setdate(int, int, int);
void printdate();
private:
int Year, Month, Day;
};
void Date::setdate(int y, int m, int d)
{
Year = y;
Month = m;
Day = d;
}
void Date::printdate()
{
outfile<<Month<<'/'<<Day<<'/'<<Year<<'\n';
}
void main()
{
Date D;
int y, m, d;
for(int i=1;i<4;i++)
{
cout << "请输入第" << i << "个日期:" << endl << "年:";
cin >> y;
cout << "月:";
cin >> m;
cout << "日:";
cin >> d;
D.setdate(y, m, d);
D.printdate();
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.176.206
1F:推 erickiller10:感恩 01/13 23:26
2F:推 Ricky1123:第五题怪怪= = cout在for理不就跑出50次A 01/14 10:51
3F:推 sophiamag19:for後面没写{}就直接接程式码的话,被算进for回圈的就 01/14 11:51
4F:推 sophiamag19:只有下面一行,下面第二行就不算在回圈内了 01/14 11:52
5F:推 escrowdis:楼上正解 01/14 13:04