189 8069 5689

c语言函数代码行数 C语言函数代码

用C语言编写一个矩阵转置的函数,矩阵的行数和列数在程序中由用户输入,请问怎么写,非常感谢

我的代码逻辑是:

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的滨湖网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

矩阵行指针初值指向每行首地址,迭代依次取所有行指针指向值组成新行,所有行指针自增。最终组合新的矩阵。

#include stdio.h

#include malloc.h

int **getList(int row,int clo);//获取矩阵地址空间

void setNum(int **nList,int n);//填写数值

void prtList(int **nList,int row,int clo);//打印矩阵

int **zz(int **nList,int row,int clo);//转置函数

int main()

{

int row,clo,**nList=NULL,**nListSave=NULL;

printf("输入矩阵行列数:");

scanf("%d%d",row,clo);

nList=getList(row,clo);

setNum(nList,row*clo);

printf("输入的矩阵为:\n");

prtList(nList,row,clo);

printf("转置后的矩阵为:\n");

nListSave=zz(nList,row,clo);

free(nList);

nList=nListSave;

prtList(nList,clo,row);

return 0;

}

int **zz(int **nList,int row,int clo)

{

int *nSave=NULL,**listSave=NULL,**listp=nList,*p=NULL,i,j;

nSave=(int *)malloc(sizeof(int)*row*clo);

listSave=(int **)malloc(sizeof(int*)*clo);//倒置后的矩阵

p=nSave;

for(j=0;jclo;j++)

{

for(i=0;irow;i++)

{

*p++=*listp[i];

listp[i]=listp[i]+1;

}

}

for(i=0;iclo;i++)

listSave[i]=nSave[i*row];

for(i=0;irow;i++)

free(nList[i]);//释放原矩阵行空间

return  listSave;

}

void prtList(int **nList,int row,int clo)

{

int i,j;

for(i=0;irow;i++)

{

for(j=0;jclo;j++)

printf("%d ",nList[i][j]);

printf("\n");

}

}

void setNum(int **nList,int n)

{

int *p=nList[0];

printf("填写矩阵中%d个数值:\n",n);

while(n--0)

scanf("%d",p++);

}

int **getList(int row,int clo)

{

int *nums,**nList,i;

nums=(int *)malloc(sizeof(int)*row*clo);

nList=(int **)malloc(sizeof(int*)*row);

for(i=0;irow;i++)

nList[i]=nums[i*clo];

return nList;

}

统计文件行数 c语言

统计行数可以通过统计换行符\n来实现。不过需要注意的是,有些文件最后一行并不存在换行符,所以代码中需要对此作处理。

可以在达到文件结尾后,判断前一个字符,如果不是换行符,那么应补加最后一行统计。

代码如下:

假定输入文件为in.txt,该文件存在且可读。

#include stdio.h

int main()

{

FILE * fp = NULL; //文件指针。

int c, lc=0; //c为文件当前字符,lc为上一个字符,供结尾判断用。

int line = 0; //行数统计

fp = fopen("in.txt", "r");//以只读方式打开文件。

while((c = fgetc(fp)) != EOF) //逐个读入字符直到文件结尾

{

if(c == '\n') line ++; //统计行数。

lc = c; //保存上一字符。

}

fclose(fp); //关闭文件

if(lc != '\n') line ++;//处理末行

printf("文件共有%d行。\n", line);

return 0;

}

样例输入输出:

如in.txt有如下内容:

test line1

test line2

则会输出:

文件共有2行。

C语言编写程序统计输入的行数

循环读入字符,遇到\n累计行数,最终输出累计值即可。

以EOF作为终止条件的代码如下:

#include stdio.h

int main()

{

int cnt = 1;//最少会输出一行,每遇到一个换行,表示多输入了一行。

int c;

while((c = getchar())!=EOF)

{

if(c == '\n') cnt++;//统计行数。

}

printf("%d\n",cnt);

return 0;

}

c语言中,源代码行数和单纯的代码行数是一个概念吗?

一般来说 是一个概念

像注释行 空行什么的,统计行数都会统计进去的,除非是有特别说明

代码行数和源代码行数,这个就像代码和源代码一样,是同一个东西的两种说法而已。

用C语言读出文件行数

#include stdio.h

int hangshu(char file[])//输入工程目录下的文件名,或者其他目录下绝对路径名例如:c:\\1.txt;

{

char c;

int h=0;

FILE *fp;

fp=fopen(file,"r");

if(fp==NULL)

return -1;//表示文件打开错误

while((c=fgetc(fp))!=EOF)

{

if(c=='\n')

h++;

else

{

c=fgetc(fp);//这是处理最后一行可能没有换行标志,但是确文件结束。

if(c==EOF)

{

h++;

break;

}

}

}

return h;

}

int main()

{

int hs=hangshu("c:\\1.txt");//这里说明你要打开的文件。这个是c盘根目录下文件

int hst=hangshu("1.txt");//工程目录下的文件。

printf("行数:%d\n",hs);

printf("行数:%d\n",hs);

}

如上是用c编写的,不是c++.

运行的时候可以把中文注释去掉。

完全可以运行的,我已经测试过了。


分享文章:c语言函数代码行数 C语言函数代码
网站URL:http://jkwzsj.com/article/hpigis.html

其他资讯