当前位置:首页 » 编程语言 » 数字矩阵c语言

数字矩阵c语言

发布时间: 2023-03-12 11:43:57

1. 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;

}

2. c语言程序编写 输入一个4×3的整数矩阵,输出其中最大值,最小值和他们的下标(行号和列号)

#include<stdio.h>
voidmain(){
intarr[4][3];
inti,j,min,max;

intr1=0,r2=0,c1=0,c2=0;
for(i=0;i<4;i++)//输进二维数组
for(j=0;j<3;j++){
printf("Inputarr[%2d][%2d]:",i,j);
scanf("%d",&arr[i][j]);
}

max=arr[0][0];//令最大值初始化为arr[0][0]
min=arr[0][0];//令最小值初始化为arr[0][0]
printf(" --------Arr[][]---------- ");//打印二维数组

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

if(arr[i][j]>max){//当arr[i][j]>max时,令max=arr[i][j],r1=i;c1=j
max=arr[i][j];
r1=i;
c1=j;

}
if(arr[i][j]<min){//当arr[i][j]<min时,令min=arr[i][j],r2=i;c2=j
min=arr[i][j];
r2=i;
c2=j;

printf(" Thisismax:%2d,r:%2d,c:%2d",max,r1,c1);
printf(" Thisismin:%2d,r:%2d,c:%2d",min,r2,c2);
printf(" ");
}

(2)数字矩阵c语言扩展阅读:

C语言编程时常犯的错误:

1 、书写标识符时,忽略了大小写字母的区别

main(){int a=5;printf("%d",A);}

编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。

2 、忽略了变量的类型,进行了不合法的运算

代码如下:

main(){float a,b;printf("%d",a%b);}

%是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。

3 、将字符常量与字符串常量混淆

char c;

c=”a”;

在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。

C规定以“”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a’和‘’,而把它赋给一个字符变量是不行的。

3. C语言输出4*5的数字矩阵 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15

#include<stdio.h>

intmain(void)
{
inti,j;
for(i=1;i<=4;++i)
{
for(j=1;j<=5;++j)
{
printf("%2d",i*j);
}
printf(" ");
}
return0;
}

4. c语言 从键盘输入一个4*4整数矩阵

#define N 4
void main()
{
int a[N][N];
int i,j,max,p,q;
printf("输入4*4矩阵:\n");
for(i=0;i<N;i++)
for (j=0;j<N;j++)
scanf("%d",&a[i][j]);
printf("输入的矩阵为:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++) printf("%4d",a[i][j]);
printf("\n");
}
max=a[1][0];
p=1;q=0;
for(i=1;i<N;i++)
for(j=0;j<i;j++)
if(a[i][j]>max)
{
max=a[i][j];
p=i;q=j;
}
a[q][p]=max;
printf("处理以后的矩阵为:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++) printf("%4d",a[i][j]);
printf("\n");
}
}

5. C语言,帮忙看下这道二维数组题,输入的矩阵怎么原样输出啊

在printf("转置矩阵A︐为:\n");的上面加上:
printf("原矩阵A为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%d ",a[i][j]);
printf("\n");
}

6. 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;

}

7. 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;

}

热点内容
动态规划01背包算法 发布:2024-11-05 22:17:40 浏览:849
nasm编译器如何安装 发布:2024-11-05 22:01:13 浏览:180
登录密码在微信的哪里 发布:2024-11-05 22:00:29 浏览:739
c防止反编译工具 发布:2024-11-05 21:56:14 浏览:247
安卓虚拟机怎么用 发布:2024-11-05 21:52:48 浏览:344
php时间搜索 发布:2024-11-05 20:58:36 浏览:479
燕山大学编译原理期末考试题 发布:2024-11-05 20:13:54 浏览:528
华为电脑出现临时服务器 发布:2024-11-05 20:05:08 浏览:408
斗战神免费挖矿脚本 发布:2024-11-05 19:53:25 浏览:665
网吧服务器分别是什么 发布:2024-11-05 19:45:32 浏览:392