1.输入一个n ,然后在屏幕上打印出NxN 的矩阵!
例如,输入一个3,则
1 2 3
8 9 4
7 6 5
输入一个4,则
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
解:
#include <iostream>
#include<iomanip>
using namespace std;
int temp,m[30][30]={0,};
void Helix(int min,int max)
{
for(int i=min;i<max;i++)
{
m[min][i]=temp+i-min;
m[i][max]=temp+(max-min)+i-min;
m[max][i+1]=temp+3*(max-min)-(i-min+1);
m[i+1][min]=temp+4*(max-min)-(i-min+1);
}
temp+=4*(max-min);
}
int main()
{
while(1)
{
int N,min(0),max;
cout<<" 输入螺旋矩阵的行列数N(1~20),输入字母 退出:";
cin>>N;
if(N<1 || N>30)
break;
max=N-1;
temp=1;
if(N%2==1)
m[N/2][N/2]=N*N;
for(int i=0;i<N/2;i++)
Helix(min++,max--);
for(int k=0;k<N;k++)
{
for(int j=0;j<N;j++)
cout<<setw(3)<<m[k][j]<<' ';
cout<<endl;
}
}
system("pause");
return 0;
}
2.如何打印出当前源文件的文件名以及源文件的当前行号?
cout <<"FILE:"<<__FILE__<<endl
<<"Line:"<<__LINE__<<endl
<<"Time:"<<__TIME__<<endl
<<"Date:"<<__DATE__<<endl;
3.如何判断一段程序是由C编译程序还是由C++编译程序编译的?
答:
1.检测头文件是否有iostream等使用类功能的文件头
2.检测是否有class等c++专用关键字
3.检测是否有两个同名函数(C++的重载)
4.关于注释,除了TC不支持//注释外,其它的C/C++编译器都支持
5.#ifdef _cpluscplus这个也算一个标志
6.查看函数参数是否有引用&符号,这个也算C++一特征
7.c编译定义了: __STDC__