c语言xn
1. 输入奇数n输出nXn方阵 c语言
在VC++6.0运行过,没有问题,
#include "stdio.h"
main()
{
int n,i,j,x,y;
for(;;)
{
printf("输入奇数n:\n");
scanf("%d",&n);
if(n%2!=1) printf("你输入的不是奇数,请重新输入:\n");
else break;
}
x=y=n/2;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j==abs(x)||j==n-1-abs(n-1-y)) printf("1");
else printf("0");
}
x--;
y++;
printf("\n");
}
}
2. C语言:从键盘输入n(n=3,5,7,9),屏幕输出nxn矩阵,且每行每列及两对角线之和均相等,并输出和。咋写
考虑到空间效率,代码用动态二维数组解决——
代码文本:
#include "stdio.h"
#include <stdlib.h>
int main(int argc,char *argv[]){
char *q,**p,n,i,j,k,t;
int sum;
printf("Enter n(int n=3,5,7,9)... n=");
if(scanf("%d",&n)==1 && (n==3 || n==5 || n==7 || n==9)){
q=(char *)malloc(sizeof(char)*n*n);
if(q && (p=(char **)malloc(sizeof(char *)*n))){
for(p[0]=q,i=1;i<n;p[i++]=p[i-1]+n);//组织成n*n二维数组
for(t=n*n,i=0;i<t;q[i++]=0);//二维数组清0
for(t++,i=0,j=n-->>1,k=1;k<t;p[i--][j++]=k++){//填矩阵
if(i==-1 && j>n)//if...else if...是填充算法
i+=2,j--;
else if(i==-1)
i=n;
else if(j>n)
j=0;
else if(p[i][j])
i+=2,j--;
}
for(sum=i=0;i<=n;i++){
for(j=0;j<=n;printf("%3d",p[i][j++]));
putchar(' ');
sum+=p[i][0];
}
free(q);
free(p);
printf("The SUM is %d ",sum);
}
else{
printf("Application memory failure, exit... ");
if(q)
free(q);
if(p)
free(p);
}
}
else
printf("Input error, exit... ");
return 0;
}
(有好几种结果,这是其中之一)
3. C语言:主函数声明NxN二维数组并初始化,编写函数int fun(int [],int)求对角线之和赋给s并输出。咋写
代码文本:
#include "stdio.h"
#define N 5
int fun(int x[],int n){
int i,j,s,t,(*p)[N]=(int (*)[N])x;
for(t=n-1,s=i=0;i<n;i++)
for(j=0;j<n;j++)
s += i==j || i+j==t ? p[i][j] : 0;
return s;
}
int main(int argc,char *argv[]){
int a[N][N],i,j,s;
for(s=i=0;i<N;i++){
for(j=0;j<N;printf("%4d",a[i][j++]=++s));
putchar(' ');
}
printf(" The result is %d ",s=fun(a[0],N));
return 0;
}
4. c语言程序设计 Xn函数
long xn(long x, long n)
{
int i, xn = 1;
for (i = 0; i < n; i++)
xn = xn * x;
return xn;
}
5. C语言:用递归函数求出f(x)=xn的值,要求:x和n的值在主函数中输入,并在主函数中将运算结果输出
#include <stdio.h>
main()
{ int x,n;
long f(int x,int n);
scanf("%d %d",&x,&n);
printf("%ld",f(x,n));
system("PAUSE");
}
long f(int x,int n)
{ if(n==1)return(x);
else return(x*f(x,n-1));
}
6. C语言编程题逆序数(大数据)给你一个序列x1,x2,…,xn如果数对< xi,xj >其中i< j而xi> xj,称为逆序数对
印象中好像是利用归并排序的性质来做的……(好像)
假设排序a,b,c,d,e,f从小到大排
二分a,b,c / d,e,f (abc与def已分别排好序)
主要看前面的a,b,c,有新数组ar[],若最小为d
ar:d
第二小是a则
ar:d,a (这里a跨过了d,表明(a,d)是逆序的)
若:
ar:d,a,b,e,f,
最大是c,表明c跨过了def(5-2,不计ab),说明(c,d),(c,e),(c,f)是逆序
……
其实解题步骤就是归并排序加上一些判断与加减法
//注:不知道会不会超时呢
7. 一道c语言题目
第一个空
fact(x,n)
第二个空
s=1
第三个空
return s
8. c语言中n++是用来干什么的
如下:
n--和--n的作用都是让n自减1,如原先n为5,n--或--n之后n就变为了4。
他们的区别在于:
n--这个表达式的值是n自减之前的值,如:
int n=5;
int a=n--;//此时a的值为5
n--这个表达式的值是n自减之后的值,如:
int n=5;
int a=--n;//此时a的值为4
例如:
n=10;
k=10*n--+3;
则结束后,k=103, n=9
--n就是在表达式中,先n自n自减,再取n的值进行运算;
例如:
n=10;
k=--n*10+3;
则结束后,k=93, n=9
若是单独的语句--n; 则与 n--; 是完全没有区别的。
(8)c语言xn扩展阅读:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1]目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
9. c语言编写程序已知数列{xn}由递推公式x1=10,xn+1=xn^2+4/2xn,(n=1,2
xn^2这个应该xn的平方吧,如果是异或的话,下面的式子就得改成x^2
main()
{
int
i,n;
float
x;
x=10;
scanf("%d",&n);
for(i=1;i<n;i++)
x=x*x+4/2*x;
printf("%f",x);
}
10. C语言如何打印输出一个NxN的矩阵,请注意矩阵的排列要求
#include<iostream.h>
voidmain()
{
intn,N,i,j,**a;
cout<<"N=";
cin>>N;
a=newint*[N];
for(n=0;n<N;)
a[n]=newint[N];
intmk1=0,mk2=0;
for(n=1,i=0,j=0;n<=N*N;){
a[i][j]=n;
if(i==0&&j<N-1&&mk1==0){
j++;
mk1++;
mk2=0;
n++;
continue;
}
if(j==0&&i<N-1&&mk2==0){
i++;
mk2++;
mk1=0;
n++;
continue;
}
if(i==N-1&&mk1==1){
j++;
mk2++;
mk1=0;
n++;
continue;
}
if(j==N-1&&mk2==1){
i++;
mk1++;
mk2=0;
n++;
continue;
}
if(mk1==1){
i++;
j--;
n++;
continue;
}
if(mk2==1){
i--;
j++;
n++;
continue;
}
}
for(intm=0;m<N;m++){
for(intn=0;n<N;n++){
cout<<a[m][n]<<"";
if(n==N-1)
cout<<endl;
}
}
for(n=0;n<N;n++)
delete[]a[n];
delete[]a;
}
大概就是这么个样吧,你试试