當前位置:首頁 » 編程語言 » c語言n階右下矩陣
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言n階右下矩陣

發布時間: 2022-11-29 08:03:56

A. c語言中關於n階矩陣輸入的問題

用scanf輸入的話就可以不管它了,你盡管回車,scanf在%d(或%f或%lf)格式下會自動放棄回車接著接收下一個有效數字。

B. C語言問題:編寫程序完成對n階矩陣(n為奇數)的變換,將原矩陣左下角n/2階子塊中的數據與右上角n

#include<stdio.h>

intmain(void)
{
inta[5][5]=
{
{1,2,3,4,5},
{6,7,8,9,10},
{11,12,13,14,15},
{16,17,18,19,20},
{21,22,23,24,25}
};
inti,j,n;

for(i=0;i<5;i++)
{
for(j=0;j<=i;j++)
{
n=a[i][j];
a[i][j]=a[j][i];
a[j][i]=n;
}
}

for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%d",a[i][j]);
}
printf(" ");
}

return0;
}

C. C語言.鍵盤輸入n階的方陣,請輸出該矩陣各列元素的和,以及兩條對角線上各個元素之和。

#include <stdio.h>
int main()//矩陣對角線
{
int a[3][3]={1,2,55,4,5,6,20,8,17},i,j,tp=0;// 1 2 55
for(i=0;i<=2;i++) // 4 5 6
{ // 20 8 17 23 80

j=i;
tp+=a[i][j];

}
printf("%d\n",tp);
tp=0;
for(i=0;i<=2;i++)
{
j=2-i;
tp+=a[i][j];

}
printf("%d",tp);
/*再加個sum[i]的循環計算各列的和,應該簡單的,自己思考一下。
那個N階呢,只要那33改一個,下面的循環里的條件改一下就可以了*/

return 0;
}

D. 用c語言編寫一個n階矩陣

#include<stdio.h>
#include<stdlib.h>

int main()
{
int n,**p,i,j;
scanf("%d",&n);
p=new int*[n];
for(i=0;i<n;i++)
{
p[i]=new int[n];
for(j=0;j<n;j++) scanf("%d",&p[i][j]);
}

for(i=0;i<n;i++)
{
printf("%d",p[i][0]);
j=1;
while(j<n)
{
printf(" %d",p[i][j]);
j++;
}
printf("\n");
}
return 0;
}

E. 用c語言設計一n階方陣!急!!

#include <stdio.h>
#include<malloc.h>
void matrix(int x,int y) //這里都是向一個方向發展的。
{
int **a;
a = (int **)malloc(x*sizeof(int)); //分配空間。
int num = x+y-1;
int k;
for(k=0;k<x;k++)
{
a[k] = (int *)malloc(y*sizeof(int));
}
int i;
int j;
int start=1; //從1開始的。元素的起始值。
for(k=0;k<num;k++)
{
for(i=0;i<y;i++) //這是列坐標,因為列是在行變後才變的。
{
for(j=0;j<x;j++) //這是行坐標。
{
if(i+j == k)
{
a[j][i] = start;
//printf("%d\n",a[j][i]);
start++;
}
}
}
//printf("k=%d\n",k);
}
for(i=0;i<x;i++) //輸出矩陣。
{
for(j=0;j<y;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
}
for(k=0;k<x;k++) //釋放空間。
{
free(a[k]);
}
free(a);
}
int main()
{
int n;
printf("please input (1-9):\n");
scanf("%d",&n);
matrix(n,n);
printf("\n");
matrix(3,5);
getchar();
getchar();
return 0;
}

F. C++中,怎麼輸出一個n階矩陣呢

C++中,輸出一個n階矩陣步驟如下:

1、首先,定義8個整型變數,實現n階矩陣的計算。

G. c語言給出一個N階數字矩陣,求其邊上數字的和。

這個樣子你試一下:

#include "stdio.h"

int number[1000][1000];

int main()

{ int n;

scanf("%d",&n);

for(int i=0; i<n; ++i)

{ for(int j=0; j<n; ++j)

{ scanf("%d",&number[i][j]);

}

}

int sum=0;

for(int k=0; k<n; ++k)

{ if(n==1)

{ sum=sum+number[0][0];

}

else

{ sum=sum+number[0][k]+number[n-1][k];

}

}

for(int f=1; f<n-1; ++f)

{ sum=sum+number[f][0]+number[f][n-1];

}

printf("%d ",sum);

return 0;

}

H. c語言中的n階方陣怎嘛做

C語言中int型的數值非常的小,最大的范圍也只在[-2^31 , 2^31 -1],所以使用int類型最大隻能表示13的階乘而已,使用范圍更大的double才是王道。

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int i,n,flg;
double num=1;
printf("please enter the times:");
//循環次數
scanf("%d",&flg);
printf("\n\n");
while(flg){
num=1;
printf("please enter the num:");
scanf("%d",&n);
for(i=1;i<=n;i++){
num *= i;
}
printf("factorial = %f\n\n",num);
flg--;
}
}

I. c語言怎麼定義 一個動態n階矩陣,n是一個變數

C語言以及絕大多數語言都不支持兩維都不固定的數組,你只能定義一個含n個指針的指針數組,然後為每個指針再分配n塊內存

J. 關於C語言的問題:如何用C語言實現n階行列式和矩陣的值

輸入:
3---7
2---1
得出錯誤結果。
而當輸入n=3
0---1---3
3---0---2
5---2---0
時也會得出錯誤結果。
錯誤的原因有2:
1
是數據類型不對,匿名的程序是設定輸入都是整數int,顯然按照行列式的定義結果肯定是整數,但是他程序中使用了整型數的除法,結果是取整整數,雖然他使用了類型強制轉換,但結果顯然不同,有誤差而且有時候這個誤差很大形成錯誤。
2
是演算法有點問題。小可很欣賞匿名的演算法思路,簡潔明快。不過有相當缺陷,這在程序中註明。
下面的程序是在匿名的程序思路上改寫的。考慮到數據類型和精確度問題,程序中行列式數據使用double型。由於tc和win-tc是16位編輯器,對float型和double型數據支持不好,所以程序是在32位編輯器Dev-c++下調試並通過的。
本題的一個完整的c程序如下,程序在Dev-c++下都調試通過,結果正確。
/*
用C語言解決:求任意階(n階)矩陣的行列式值
*/
#include
<stdio.h>
#include
<math.h>
void
getarray(int
n);
void
showarray(int
n);
double
getresult(int
n);
double
array[10][10];/*設矩陣不超過10階,可更改*/
int
main()
{
int
n;
double
result;
printf("\nPlease
input
the
Array
size
n:");
scanf("%d",&n);
getarray(n);
showarray(n);
result=getresult(n);
printf("\nResult=%f\n",result);
system("pause");
return
0;
}
void
getarray(int
n)
{
int
row,col;
for(row=0;row<n;row++)
{
printf("\nPlease
input
line
%d:",row+1);
for(col=0;col<n;col++)
scanf("%lf",&array[row][col]);
}
}
void
showarray(int
n)
{
int
row,col;
printf("\nA=");
for(row=0;row<n;row++)
{
for(col=0;col<n;col++)
printf("\t%f",array[row][col]);
printf("\n");
}
}
double
getresult(int
n)
{
double
temp,result=1.0;
int
switchtime=0,flag=0;
int
row,nextrow,col,stemp;
for(row=0;row<n-1;row++)
{
nextrow=row+1;
if(array[row][row]==0)/*
開始處理第一列,如果行列式第一行第一個數為零,要交換行
*/
{
while(array[nextrow][row]==0)
{
nextrow++;
/*
如果行列式第二行第一個數為零,行增加繼續尋找非零數值的行
*/
if(nextrow==n)/*
如果遍歷完行列式行列式第一列元素都為零,退出while循環
*/
{
flag=1;
break;
}
}
if(flag==1)
/*
退出while循環後回到for(row=0;row<n-1;row++)行加1?*/
continue;
/*
從array[row][row]==0知列也相應加1,開始處理第二列
*/
switchtime++;
/*
每交換一次行,行列式符號變化1次,統計變化次數
*/
for(col=0;col<n;col++)
/*
交換非零行到行列式頂部
*/
{
stemp=array[row][col];
array[row][col]=array[nextrow][col];
array[nextrow][col]=stemp;
}
}
for(nextrow=row+1;nextrow<n;nextrow++)
{
/*
類似高斯消去法,消第一行下各行第一列數值到零*/
temp=array[nextrow][row]/array[row][row];
for(col=0;col<n;col++)
array[nextrow][col]+=-temp*array[row][col];/*
化行列式為上三角行列式形式
*/
}
}
showarray(n);
for(row=0;row<n;row++)
result*=array[row][row];
if(switchtime%2)
return
-result;
else
return
result;
}