C語言平移函數 c語言的移位運算

c語言改錯,要求實現數據平移。謝謝哈。

mov 函數中使用了指針 b,但未對它賦值,它指向的內存是未知的,因此出錯。

創新互聯專業為企業提供微山網站建設、微山做網站、微山網站設計、微山網站制作等企業網站建設、網頁設計與制作、微山企業網站模板建站服務,十年微山做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。

要實現數據平移,比較簡單的方法是先將它復制一份,再平移。這樣, mov 函數可寫為

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

}

程序中用到了內存分配的函數及內存復制函數,因此需要包含 stdlib.h 和 string.h 庫。

C語言數組平移問題

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語言怎樣對bmp圖像進行平移的操作?

位圖平移沒有這方面的庫函數,必須自己來實現,下面是位圖平移的參考代碼:

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

}

//左右平移功能的實現

int t;

printf("請輸入左平移或右平移的大小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;

}

新聞標題:C語言平移函數 c語言的移位運算
標題URL:http://m.kartarina.com/article12/hjipgc.html

成都網站建設公司_創新互聯,為您提供小程序開發、品牌網站建設標簽優化、定制開發、微信公眾號建站公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作
主站蜘蛛池模板: 亚洲AV日韩AV永久无码色欲| 狠狠精品久久久无码中文字幕| 亚洲AV无码一区二区乱子伦| 台湾无码一区二区| 亚洲精品久久久久无码AV片软件| 成人毛片无码一区二区| 成在线人免费无码高潮喷水| 无码福利写真片视频在线播放| 精选观看中文字幕高清无码| 99久久亚洲精品无码毛片| 免费VA在线观看无码| 一本色道久久综合无码人妻| 久久久久久av无码免费看大片| 亚洲av无码精品网站| 亚洲人成无码网站久久99热国产| 精品少妇人妻av无码久久| av无码东京热亚洲男人的天堂 | 久久久久久无码Av成人影院| 18禁成年无码免费网站无遮挡 | 免费无码又爽又刺激高潮视频| 免费无码AV一区二区| 久久久久久99av无码免费网站| 无码专区—VA亚洲V天堂| 国产成人无码一区二区在线观看| 永久免费av无码网站韩国毛片| 无码成A毛片免费| 亚洲国产成人片在线观看无码 | 无码免费午夜福利片在线| 无码中文字幕日韩专区| 暴力强奷在线播放无码| 国产成人无码A区在线观看视频| 东京热一精品无码AV| 国产精品无码一区二区在线 | 亚洲av无码有乱码在线观看| 久久国产精品无码HDAV| AV无码久久久久不卡蜜桃| 亚洲AV无码一区二区三区人| 久久精品无码午夜福利理论片| 无码GOGO大胆啪啪艺术| 久久久久无码国产精品一区| 无码区国产区在线播放|