A. 請幫我看一條程序,很簡單的C。要求是輸出4x5矩陣周圍一圈整數的和。
老報錯的地方,前面少一個分號(;)問題在這兒。
B. c語言中的矩陣是怎樣計算的
矩陣的表示使用二維數組,當然二維數組通常情況下是不可以動態分配的,因此最好已開始定義一個足夠大的數組來存放矩陣元素。至於加減乘逆等運算,主要是利用嵌套循環操作其單個元素,由於每個人的方法不一樣就不詳細說了。希望對你有所幫助。
C. C語言的矩陣問題
定義變數
int a[4][5]={};
int i,j;
int max1=0,max2=0;
int min1=0,min2=0;
查找函數
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
if(a[max1][max2]<a[i][j])
max1=i;
max2=j;
}
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
if(a[min1][min2]>a[i][j])
min1=i;
min2=j;
}
}
}
輸入函數
{
printf("請輸入4*5的矩陣");
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
scanf(" %d",a[i][j])
}
}
輸出函數
輸出上面求的的MAX1 MAX2 MIN1 MIN2的值就行了。。。
D. c語言矩陣運算
#include<vector>
#include<iostream>
intmain()
{
usingnamespacestd;
intm,n,p;
vector<vector<int>>A,B,C;
cout<<"pleaseinputm,n,p"<<endl;
cin>>m>>n>>p;
vector<int>tmp;
intttp;
for(inti=0;i<m;i++)
{
for(intj=0;j<n;j++)
{
cin>>ttp;
tmp.push_back(ttp);
}
A.push_back(tmp);
tmp.clear();
}
for(inti=0;i<n;i++)
{
for(intj=0;j<p;j++)
{
cin>>ttp;
tmp.push_back(ttp);
}
B.push_back(tmp);
tmp.clear();
}
for(inti=0;i<m;i++)
{
for(intj=0;j<p;j++)
{
ttp=0;
for(intk=0;k<n;k++)
ttp=ttp+A[i][k]*B[k][j];
tmp.push_back(ttp);
}
C.push_back(tmp);
tmp.clear();
}
for(inti=0;i<m;i++)
{
for(intj=0;j<p;j++)
{
cout<<C[i][j]<<'';
}
cout<<endl;
}
system("pause");
}
現在是2017年10月15日,無意中回答了一道2011年12月09日的題,留念。
E. 計算機作業
給你提個建議吧,參加個qq群,有專門的c語言技術群 你有qq吧 查找一下
F. C語言如何用while循環輸出4x5的矩陣
#include <stdio.h>
void main()
{
int i,j;
for(i=1;i<5;i++)
{
for(j=1;j<6;j++)
printf("%-3d",i*j);
printf(" ");
}
}
G. 求4*5矩陣...c語言詳細解說!!謝謝!!
#include"stdio.h" //標准庫文件
#include"conio.h"
int main()
{
int a,b,c=0;
for(a=1;a<=4;a++) //a 代錶行 1到4 一共四行 下面的for循環代表處理每一行的列 例如第一行的 1 2 3 4 5 列
for(b=1;b<=5;b++,c++) //處理每一列 循環5次以後 a+1 再循環5次 知道A=4
{
if(c%5==0)//如果一行已經有5個元素了 則控制換行
printf("\n");
printf("%d\t",a*b); //把a*b的結果當成矩陣中的某個元素 具體坐標由ab決//定 例如 a=2 b=4 代表第二行第四列的元素為8
}
putchar('\n'); //輸出完矩陣後換行
getch();//等待用戶輸入一個字元
return 0;
}
H. C語言:輸出一個4*5的循環矩陣
按照你的要求編寫的C語言4*5的循環矩陣的程序如下
#include<stdio.h>
int main(){
int a[]={1,2,3,4,5};
int i,j;
for(i=0;i<4;i++){
for(j=5-i;j<5;j++){
printf("%d ",a[j]);
}
for(j=0;j<5-i;j++){
printf("%d ",a[j]);
}
printf("\n");
}
return 0;
}如果需要存儲在二維數組中,可以看看下面的C語言程序
#include<stdio.h>
int main(){
int a[]={1,2,3,4,5},b[4][5];
int i,j,k;
for(i=0;i<4;i++){
k=0;
for(j=5-i;j<5;j++,k++){
b[i][k]=a[j];
}
for(j=0;j<5-i;j++,k++){
b[i][k]=a[j];
}
}
for(i=0;i<4;i++){
for(j=0;j<5;j++){
printf("%d ",b[i][j]);
}
printf("\n");
}
return 0;
}運行結果
I. c語言矩陣怎麼寫
方法1:直接定義10*10的數組,讀取全部數據,再根據選擇的行列數列印輸出部分數據。
方法2:通過文件流指針的移動,跨過不需要的內容。(這里控制文件流指針可利用ftell和fseek函數來移動指定位元組數)我是利用fscanf讀取需要的內容,遇到需要跳行就用fgets來跳過。(注意常量參數根據自己需求修改)。
說明:邊讀取邊列印輸出,就不需要變數存儲。我的代碼是把讀取出來的內容存放在三維數組中(文件內容你沒指定,如是單純數字,二維數組即可,我是作為字元串處理,故用三維數組。),數組是根據實際大小,動態申請,寫成兩個獨立函數。
下面是代碼:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#define MAXR 10//文件中矩陣最大行
#define MAXC 10//文件中矩陣最大列
#define MS 3//矩陣中元素字元串最大字元數(包含結束符號,不可小於實際內容)
#define MBUF 100//文件中一行最大字元數,可設置大一點
char ***getMem(int r,int c,int len);//動態申請一個三維數組
void freeMem(char ***datas,int r,int c);//釋放數組空間
void showDatas(char ***datas,int r,int c);//列印輸出結果
int main()
{
int r=MAXR+1,c=MAXC+1,i=0,j=0;
char ***datas=NULL,str[3],buf[MBUF];
FILE *fp=NULL;
printf("請輸入要獲取的行數和列數: ");
while(r<0 || r>MAXR || c<0 || c>MAXC)scanf("%d%d",&r,&c);
datas=getMem(r,c,MS);
fp=fopen("C:\test.data","r");
if(!fp) return 1;
while(fscanf(fp,"%s",str)!=-1)
{
if(i<c) strcpy(datas[j][i],str),i++;
if(i==c)
{
if(!fgets(buf,sizeof(buf),fp)) break;
i=0,j++;
}
if(j==r) break;
}
showDatas(datas,r,c);
freeMem(datas,r,c);
return 0;
}
void showDatas(char ***datas,int r,int c)
{
int i,j;
for(i=0;i<r;i++,printf(" "))
for(j=0;j<c;j++)
printf("%s ",datas[i][j]);
printf(" ");
}
void freeMem(char ***datas,int r,int c)
{
int i,j;
if(!datas)
{
for(i=0;i<r;i++,free(datas[i]))
for(j=0;j<c;j++)
free(datas[i][j]);
free(datas);
}
}
char ***getMem(int r,int c,int len)
{
int i,j;
char ***datas=NULL,**dr=NULL;
datas=(char ***)malloc(sizeof(char **)*r);
if(!datas) return NULL;
for(i=0;i<r;i++)
{
dr=(char **)malloc(sizeof(char *)*c);
if(!dr) return NULL;
else
{
for(j=0;j<c;j++)
{
dr[j]=(char *)malloc(sizeof(char)*len);
if(!dr[j]) return NULL;
}
datas[i]=dr;
}
}
return datas;
}
J. 有一個4*5矩陣,用MATLAB編程求出其最大值及其所在的位置
MATLAB求最大值直接調用求最值的函數 max 函數就好了。例如矩陣為 A ,那麼求最值即為 max_A = max( max(A) ) , [m,n] = find( max_A == A )
程序中出錯的原因可能是因為第一行結束的分號是中文分號,換成非英文分號就好。
MATLAB 中的 max 函數是求最大值的函數。
1、如果 A 是向量,則 max(A) 返回 A 的最大值。
這也是求矩陣的最大值需要使用兩個 max 函數的原因。使用 find 函數可以找到矩陣中等於最大值的位置。
(10)c語言4x5矩陣怎麼算擴展閱讀:
max函數的其他用法:
1、M = max(A,[],dim) 沿著維度 dim 返回最大元素。例如,如果 A 為矩陣,則 max(A,[],2) 是包含每一行的最大值的列向量。
2、M = max(A,[],nanflag) 指定在計算中包括還是忽略 NaN 值。例如,max(A,[],'includenan') 包括 A 中的所有 NaN 值,而 max(A,[],'omitnan') 忽略這些值。可以指定使用 nanflag 選項時的運算維度。
3、[M,I] =max(___) 使用先前語法中的任何輸入參數,查找 A 的最大值的索引,並在輸出向量 I 中返回這些索引。如果最大值出現多次,則 max 返回對應於第一次出現位置的索引。
4、C = max(A,B) 返回從 A 或 B 中提取的最大元素的數組。