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;
}
大概就是這么個樣吧,你試試