1. c语言打印出n行n列的图形,第一列一个*,第二列两个**,第三列三个***,直到n列n个*,列与列有一空格
#include<stdio.h>
#include<stdlib.h>
#defineN10
intmain()
{
inti;
intj;
for(i=0;i<N;i++)
{
for(j=0;j<=i;j++)
printf("*");
printf(" ");
}
}
2. C语言如何定义一个N行N列的二维数组任意输入数据
1、一般情况下,题目会给出N不大于M,m不大于几的限制条件,此时只需这样定义即可
int
a[N]M],其中N和M作为常数进行宏定义,比如
#define
N
5
#define
M
6
2、学到动态内存分配后,就不会有这样的担忧,需要时,可用malloc()函数在“堆”空间申请内存,该函数的原型是:
void
*malloc(
size_t
size
);,功能是要求系统分配大小为size个字节的堆空间,注意到该函数的分会类型是void,通过强制类型转换即可获得需要的数据类型,比如
int
*p;
p
=
(int
*)malloc(30);
如果申请成功,则返回该区域的首址,失败则返回NULL。
3. C语言,在n行n列的矩阵中,每行都有最大打数,输出这n个最大数中的最小值。这两个if括号里边怎么填
row==0
max<min
4. 用C语言编程解决:在 n 行 n 列的矩阵中,每行都有最大的数,求这 n 个最大数中的最小一个
#include "stdio.h"
int main()
{
int d[100][100],n,max[100],min;
int i,j;
printf("输入矩阵阶数:");
scanf("%d",&n);
printf("输入%d*%d阶矩阵:\n",n,n);
for(i=0;i<n;i++)
{
scanf("%d",&d[i][0]);
max[i]=d[i][0];
if(i==0) min=d[i][j];
for(j=1;j<n;j++)
{
scanf("%d",&d[i][j]);
if(max[i]<d[i][j])
max[i]=d[i][j];
}
if(min>max[i]) min=max[i];
}
printf("\n各行数中最大者中最小的数是%d",min);
}
5. C语言输出n行n列的“*”,不想用两层循环有没有更简便的算法
intfcn(intn)
{
if(n>1)
returnfcn(n-1);
printf("*");
}
intmain()
{
intn;
printf("Pleaseinputanumber: ");
scanf("%d",&n);
for(inti=0;i<ni++)
{
fcn(n);
printf(" ");
}
}
6. c语言编程:输入n,输出n行n列的矩阵
#include<stdio.h>
int maini()
{
int n,i,j,k=1;
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%d ",k);
k++;
}
printf("\n");
}
}
7. C语言中如何求一个二维数组n行n列中每一行最大的数
#include<stdio.h>
int main()
{int a[4][3]={1,42,3,45,5,6,7,78,9,10,11,12},b[4];
int i,j;
printf("A数组: ");
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf(" ");
}
for(i=0;i<4;i++)
{b[i]=a[i][0];
for(j=1;j<3;j++)
if(a[i][j]>b[i])
b[i]=a[i][j];
}
printf("每一行最大的数: ");
for(i=0;i<4;i++)
printf("%d ",b[i]);
return 0;
}
8. C语言,n行n列数组,求和,要求进来看,好的加满分
//用全排列的方法求解,排除掉全排列中行号和列号相同的即可
//由于每次测试可能输入较多数据,使用freopen进行重定向,这样可以节省调试时间,在工程文件夹中建立一个名为
//t.txt的文件,然后以如下格式输入数据:
//2//这个是矩阵的大小
//1222//下面是每行的数据
//3220
//如果需要手动输入测试数据,将freopen这行代码注释掉即可。
//另外,为了观察结果,输出了较多的提示信息,可以自行修改
#include<stdio.h>
#defineMAX100
intperm[MAX+1];//存放所有的排列数
intdata[MAX+1][MAX+1];//数据
intcount=1;
voidpermutation(intperm[],intn,intcurr)
{
inti;
intsum;
if(curr==n)
{
sum=0;
for(i=1;i<=n;i++)
{
//列号在perm[i]中
if(i==perm[i])
return;
else
{
sum+=data[i][perm[i]];
}
}
for(i=1;i<=n;i++)
printf("A[%d][%d]=%d",i,perm[i],data[i][perm[i]]);
printf(" S%d=%d ",count++,sum);
return;
}
for(i=curr;i<=n;i++)
{
intt;
t=perm[curr];
perm[curr]=perm[i];
perm[i]=t;
permutation(perm,n,curr+1);
t=perm[curr];
perm[curr]=perm[i];
perm[i]=t;
}
}
intmain()
{
freopen("t.txt","r",stdin);
inti,j;
intn;
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&data[i][j]);
for(i=n;i>=1;i--)
perm[i]=i;
permutation(perm,n,1);
return0;
}
//我写的可能有些问题,没时间改了,楼主自己改改看吧。我的结果好像不是(n-1)!个。
9. 求助 C语言程序设计 N行N列矩阵与向量相乘
floatret=0;
for(inti=0;i<N;i++)
for(intj=0;j<N;j++)
ret+=x[i]*a[i][j]*y[j];
return(ret);
输入有两个向量,视为一个行向量和一个列向量
10. c语言 输入n行n列的数据 然后实现互换对角的数据的程序怎么写比较好
2行3列怎么互换对角233
101
我觉得是不是m行m列互换对角
比如:123
456
789
互换后:
321
456
987
是这样吗????
这是我写的代码:
#include <stdio.h>
#define N 50
int main()
{
int a[N][N],m,i,j,k;
puts("请输入多少行列 最大50:");
scanf("%d",&m);
printf("请输入%d*%d个数据
",m,m);
for(i=0;i<m;i++)
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
puts("互换前:");
for(i=0;i<m;i++)
{ for(j=0;j<m;j++)
{ printf("%-4d",a[i][j]);}
puts("");
}
puts("互换后:");
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
if(i+j==m-1) { k=a[i][i];a[i][i]=a[i][j];a[i][j]=k;}
}
for(i=0;i<m;i++)
{ for(j=0;j<m;j++)
{ printf("%-4d",a[i][j]);}
puts("");
}
return 0;
}
这是运算结果: