1. 求c语言在指定行列输出方法。。。
看到上面的演示了吗,可以任意的在屏幕位置输出字符,是这个意思吗
2. 怎样能用VB或C语言实现自动获取某个TXT文档里的内容,并输出指定行列任何长度的内容,最好能逐行输出,谢
前边这位给的程序根本不通,简直就是废物。
一个读文件的程序要要让文件去适应你的程序?那程序不是废物是什么?
这个功能用最基本的fopen、fread就能完成。用不着拿IO流来脱裤子放屁。
而且,考虑到文件的内容长度不确定,根据需要可以:
1.读一个字符就写出一个字符到目的(屏幕或者文件)。
2.用链表,根据文件长度动态分配内存(malloc/free的组合完全可以胜任),一次性全部存储,再处理。
3. 用c语言编写输出3*4的矩阵,求最后一个最小值并显示行号和列号
#include<stdio.h>
int main() {
const unsigned row=3, col=4;//定义行列数
unsigned minx, miny;//最小值的行列
int min;//最小值
int nums[row][col];
for (unsigned i = 0; i < row; i++)//录入数据
{
for (unsigned j = 0; j < col; j++)
{
scanf("%d",&nums[i][j]);
}
}
min = nums[0][0];//初始化最小值为第一行第一列的数
minx = 1;
miny = 1;
for (unsigned i = 0; i < row; i++)//遍历数组找出最小值
{
for (unsigned j = 0; j < col; j++)
{
if (nums[i][j] <= min)
{
min = nums[i][j];
minx = i+1;
miny = j+1;
}
}
}
printf("最小值为:%d,位于第%u行%u列", min, minx, miny);//输出数据
return 0;
}
4. c语言,想输出任意一个矩阵(行列可以自己设计的),要怎么做啊,我最头痛的就是二维数组不能空着啊。。
不可以直接定义空数组,
可以试试一下方法
可以通过malloc()函数动态分配,示例:
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
typedef int datatype;
datatype **na(const int m,const int n) /*创建一个m行n列的datatype类型数组,返回首地址,如果创建失败则返回NULL*/
{
int i;
datatype **a=(datatype**)malloc(sizeof(datatype *)*m);
if (!a) {
return NULL;
}
else
for (i = 0; i<m; i++) {
a[i]=(datatype*)malloc(sizeof(datatype)*n);
if (!a[i]) {
return NULL;
}
}
return a;
}
void dela(datatype **a,const int m) /*删除用na()函数创建的并且有m行元素的二维数组a*/
{
int i;
for (i = 0; i<m; i++)
free(a[i]);
free(a);
}
int main(void)
{
datatype **dta=na(3,2); /*创建一个3行2列的datatype数组*/
int i,j;
if (!dta) { /*如果创建失败,则输出错误信息并结束程序*/
fprintf(stderr,"MEMORY ERROR\n");
return -1;
}
else
{
for (i=0; i<3; i++) { /*使用刚才创建的二维数组*/
for (j=0; j<2; j++) {
dta[i][j]=i*j;
printf("%d ",dta[i][j]);
}
putchar('\n');
}
}
dela(dta,3); /*动态创建的数组要手动删除*/
return 0;
}
//---------------------------------------------------------------------------
5. C语言编程:自定义一个5*5的矩阵,找出矩阵中最大的数,并输出其所在的行与列,怎么写
代码文本:
#include "stdio.h"
#define N 5
void dispmatrix(int (*p)[N]){
int i,j;
for(i=0;i<N;i++){
for(j=0;j<N;printf("%4d",p[i][j++]));
putchar(' ');
}
}
void findmax(int p[][N]){
int i,j,mi,mj;
for(mi=mj=i=0;i<N;i++)
for(j=0;j<N;j++)
if(p[mi][mj]<p[i][j])
mi=i,mj=j;
printf("The MAX is a[%d][%d]=%d ",mi,mj,p[mi][mj]);
}
int main(int argc,char *argv[]){
int a[N][N]={41,467,334,500,464,145,705,724,169,391,716,895,478,
281,961,827,995,604,163,421,358,718,382,902,491};
printf("Matrix is as follows: ");
dispmatrix(a);
printf(" ");
findmax(a);
return 0;
}
供参考。
6. 输入二维数组a[4][6],输出其中的最大值及其对应的行列位置 c语言编写
这个是要求用指针写的,如果你还没有学到指针,你就看下面那个答案的。
#include<stdio.h>
void main(){
int a[4][6]={{1,2,5,5,8,9},{14,12,14,14,4,7},{15,11,0,1,4,7},{1,2,3,4,5,6}};
int findmax(int *p,int *p1);
int ans,maxij;
ans=findmax(a[0],&maxij); //看第一个参数
printf("\nthe answer is a[%d][%d]=%d",maxij/6,maxij%4,ans);
}
int findmax(int *p,int *p1){ //将其当成一维数组对待
int m=p[0];
for (int i=0;i<24;i++)
{
if (m<p[i])
{m=p[i],*p1=i;
}
}
return m;
}
//第二种方法。。。。。。。。。。。
#include<stdio.h>
void main(){
int a[4][6]={{1,2,3,4,5,6},{1,4,7,5,6,2},{1,4,5,6,8,9},{2,5,6,7,8,4}};
int max=a[0][0],i,j;
for(i=0;i<4;i++)
{
for(j=0;j<6;j++)
{
if(max<a[i][j])
max=a[i][j];
}
}
printf("The Max is %d\t ",max);
}
7. c语言中如何获取一个二维数组的行列数
有两种方式:
1 二维数组的行列数在定义的时候就是确定好的,所以编程人员是知道二维数组的大小以及行列数的。 所以可以直接使用行列数的值。
为方便维护,可以将行列数定义为宏,直接调用对应的宏名作为行列值。
2 动态获取。
对于type array[A][B];形式的二维数组,可以通过计算sizeof获取行列数。
sizeof(array[0][0])为一个元素占用的空间,
sizeof(array[0])为一行元素占用的空间,
sizeof(array)为整个数组占用的空间,
于是:
行数 = sizeof(array)/sizeof(array[0]);
列数 = sizeof(array[0])/sizeof(array[0][0]);