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 中提取的最大元素的数组。