真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C語言平移函數(shù) c語言的移位運(yùn)算

c語言改錯(cuò),要求實(shí)現(xiàn)數(shù)據(jù)平移。謝謝哈。

mov 函數(shù)中使用了指針 b,但未對(duì)它賦值,它指向的內(nèi)存是未知的,因此出錯(cuò)。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供微山網(wǎng)站建設(shè)、微山做網(wǎng)站、微山網(wǎng)站設(shè)計(jì)、微山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、微山企業(yè)網(wǎng)站模板建站服務(wù),十年微山做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

要實(shí)現(xiàn)數(shù)據(jù)平移,比較簡(jiǎn)單的方法是先將它復(fù)制一份,再平移。這樣, mov 函數(shù)可寫為

void mov(int *x,int n,int m)

{

int *b, i, j;

b = (int *)calloc(n, sizeof(int));

if (b == NULL) {

printf("allocate memory failed!\n");

exit(0);

}

memcpy(b, x, n*sizeof(int));

for (i=0; in; i++) {

j = (i+n-m)%n;

x[i] = b[j];

}

free(b);

}

程序中用到了內(nèi)存分配的函數(shù)及內(nèi)存復(fù)制函數(shù),因此需要包含 stdlib.h 和 string.h 庫。

C語言數(shù)組平移問題

int a[8] = {xxxxxx};

int b[8];

int m;

int i, j = 0;

scanf("%d",m);

for(i = m;i8;i++)

{

b[j++] = a[i];

}

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

{

b[j++] = a[i];

}

利用c語言怎樣對(duì)bmp圖像進(jìn)行平移的操作?

位圖平移沒有這方面的庫函數(shù),必須自己來實(shí)現(xiàn),下面是位圖平移的參考代碼:

#include "stdafx.h"

#includewindows.h

#includestdio.h

#includemath.h

int _tmain(int argc, _TCHAR* argv[])

{

int width;

int height;

RGBQUAD *pTableColor;

unsigned char *pBmpBuf1,*pBmpBuf2;

BITMAPFILEHEADER bfhead;

BITMAPINFOHEADER bihead;

//讀出源圖像的信息

FILE *fpr=fopen("E:\\picture\\dog.bmp","rb");

if(fpr==0)

return 0;

fread(bfhead,14,1,fpr);

fread(bihead,40,1,fpr);

width=bihead.biWidth;

height=bihead.biHeight;

int LineByte=(width*8/8+3)/4*4;

pTableColor=new RGBQUAD[256];

fread(pTableColor,sizeof(RGBQUAD),256,fpr);

pBmpBuf1=new unsigned char[LineByte*height];

fread(pBmpBuf1,LineByte*height,1,fpr);

fclose(fpr);

//將處理后的圖像賦值為白色

pBmpBuf2=new unsigned char[LineByte*height];

for(int i=0;iheight;i++)

for(int j=0;jwidth;j++)

{

unsigned char *p;

p=(unsigned char*)(pBmpBuf2+LineByte*i+j);

(*p)=255;

}

//左右平移功能的實(shí)現(xiàn)

int t;

printf("請(qǐng)輸入左平移或右平移的大小t(左移t0,右移t0):");

scanf("%d",t);

int k=abs(t);

printf("%d",k);

if(t0)

{

if(t=(-width))

{

for(int i=0;iheight;i++)

for(int j=0;j(width-k);j++)

{

unsigned char *p1,*p2;

p1=pBmpBuf1+LineByte*i+j+k;

p2=pBmpBuf2+LineByte*i+j;

(*p2)=(*p1);

}

}

}

else

{

if(t=width)

{

for(int i=0;iheight;i++)

for(int j=k;jwidth;j++)

{

unsigned char *p1,*p2;

p1=pBmpBuf1+LineByte*i+j-k;

p2=pBmpBuf2+LineByte*i+j;

(*p2)=(*p1);

}

}

}

//保存處理后的圖像

FILE *fpw=fopen("dog.bmp","wb");

fwrite(bfhead,14,1,fpw);

fwrite(bihead,40,1,fpw);

fwrite(pTableColor,sizeof(RGBQUAD),256,fpw);

fwrite(pBmpBuf2,LineByte*height,1,fpw);

fclose(fpw);

return 0;

}


當(dāng)前文章:C語言平移函數(shù) c語言的移位運(yùn)算
轉(zhuǎn)載源于:http://weahome.cn/article/hjipgc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部