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

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

C語言矩陣賦值函數(shù),c語言字符串賦值函數(shù)

51單片機(jī),用c語言,如何用矩陣鍵盤為一個變量char a賦值?已設(shè)計出一個函數(shù),使得每按一個矩陣

/***4×4矩陣按鍵構(gòu)架——火柴天堂作品-20110921***/

10年的思南網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整思南建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“思南網(wǎng)站設(shè)計”,“思南網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。

/***源程序默認(rèn)硬件環(huán)境:52單片機(jī),12MHz晶振,P1口 4×4矩陣鍵盤,詳細(xì)布局如下***/

/* 默認(rèn)矩陣布局,按鍵掃描方式1使用

P0 P1 P2 P3

│ │ │ │

P4─┼──┼──┼──┤ S1 S2 S3 S4

│ │ │ │

P5─┼──┼──┼──┤ S5 S6 S7 S8

│ │ │ │

P6─┼──┼──┼──┤ S9 S10 S11 S12

│ │ │ │

P7─┴──┴──┴──┘ S13 S14 S15 S16

*/

#include"reg52.h" //包含52頭文件

#define TRUE 1 //定義布爾量'1':真

#define FALSE 0 //定義布爾量'0':假

#define uchar unsigned char //定義 無符號字符型數(shù)據(jù) 簡稱

#define uint unsigned int //定義 無符號整型數(shù)據(jù) 簡稱

#define KeyPort P1

#define Key1Value 1

#define Key2Value 2

//uchar code KeyCodeList[16]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xeb,0xe7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77};//按鍵代碼列表,按鍵掃描方式2使用,可按需要隨意修改順序

uchar KeyScan() //按鍵掃描函數(shù)(方式1,需配合源程序矩陣布局,返回值0表示無按鍵,1-16為對應(yīng)按鍵),缺點:無法掃描組合鍵(同時按2個按鍵以上)

{

uchar temp_h,temp_l,scan_value,i;

KeyPort=0xf0; //設(shè)置低4位為0(掃描線),準(zhǔn)備讀取高4位(返回線)狀態(tài)

if(KeyPort==0xf0) return 0; //若高4位狀態(tài)不變,表示無按鍵,返回?zé)o按鍵 鍵值0

temp_h=~KeyPort4; //若高4位狀態(tài)改變,表示有按鍵,讀取高4位,并將結(jié)果轉(zhuǎn)成正邏輯(按鍵對應(yīng) 行線 為 1 )存在temp_h低位上

KeyPort=0x0f; //設(shè)置高4位為0(掃描線),準(zhǔn)備讀取低4位(返回線)狀態(tài)

temp_l=~(KeyPort|0xf0); //讀取低4位,并將結(jié)果轉(zhuǎn)成正邏輯(按鍵對應(yīng) 列線 為 1 )存在temp_l低位上

while(i4) //將 按鍵行線號 轉(zhuǎn)成數(shù)值

{

if((temp_hi)==0x01) break; //讀取按鍵行線號

i++;

}

if(i==4) return 0; //若讀取出錯,返回?zé)o按鍵

temp_h=i; //將 按鍵行線數(shù)值 結(jié)果存于 temp_h

i=0;

while(i4) //將 按鍵列線號 轉(zhuǎn)成數(shù)值

{

if((temp_li)==0x01) break; //讀取按鍵列線號

i++;

}

if(i==4) return 0; //若讀取出錯,返回?zé)o按鍵

temp_l=i; //將 按鍵列線號 結(jié)果存于 temp_l

scan_value=(temp_h2)+temp_l+1; //合并行列線數(shù)值,并轉(zhuǎn)成按鍵值,每條行線鍵值差為 4(temp_h2),按鍵值從1開始(+1,0為無按鍵 鍵值)

return scan_value; //返回 按鍵值

}

/*

uchar KeyScan() //按鍵掃描函數(shù)(方式2,需配合 按鍵代碼列表 數(shù)組 進(jìn)行 鍵值 查詢,返回值0表示無按鍵,1-16為代碼表順序?qū)?yīng)按鍵),缺點:無法掃描組合鍵

{

uchar temp,i;

KeyPort=0xf0; //設(shè)置低4位為0(掃描線),準(zhǔn)備讀取高4位(返回線)狀態(tài)

if(KeyPort==0xf0) return 0; //若高4位狀態(tài)不變,表示無按鍵,返回?zé)o按鍵 鍵值0

temp=KeyPort|0x0f; //若高4位狀態(tài)改變,表示有按鍵,讀取高4位,并將結(jié)果存于 temp 的高4位

KeyPort=0x0f; //設(shè)置高4位為0(掃描線),準(zhǔn)備讀取低4位(返回線)狀態(tài)

temp=(KeyPort|0xf0); //讀取低4位,并將結(jié)果存于 temp 的低4位

while(i16) //將按鍵行列線代碼轉(zhuǎn)換成鍵值

{

if(temp==KeyCodeList[i]) break; //將 行列線 代碼與 按鍵代碼表 進(jìn)行對比,若一致則結(jié)束對比

i++; //進(jìn)行下一個對比

}

if(i==16) return 0; //若查詢出錯,或 行列線代碼 不在 按鍵代碼表中,返回?zé)o按鍵 鍵值0

return i+1; //返回按鍵值1~16(按鍵代碼列表中元素下標(biāo)+1,0為無按鍵 鍵值)

}

*/

void KeyResp() //按鍵響應(yīng)函數(shù)

{

static uchar KeyValue; //定義靜態(tài)變量-按鍵值,

static bit KeyDownFlag,KeyReadyFlag; //定義靜態(tài)標(biāo)志位-按鍵按下標(biāo)志,按鍵準(zhǔn)備(響應(yīng))標(biāo)志

uchar key_value=KeyScan(); //調(diào)用掃描函數(shù),并將結(jié)果臨時存放于key_value 中

if(key_value) //若掃描結(jié)果為真(即有按鍵)

{

KeyValue=key_value; //保存掃描結(jié)果

KeyDownFlag=TRUE; //按鍵按下標(biāo)志 置位

KeyReadyFlag=TRUE; //按鍵準(zhǔn)備(響應(yīng))標(biāo)志 置位

}

else KeyDownFlag=FALSE; //若掃描結(jié)果為假(即無按鍵),則清空按鍵按下標(biāo)志

if(KeyReadyFlag !KeyDownFlag) //若 按鍵已準(zhǔn)備(響應(yīng)),且無按鍵按下,(可知為 按下后又松手情況)

{

switch(KeyValue) //查找 按鍵值 對應(yīng)的 按鍵處理

{

case Key1Value:break; //按鍵1處理

case Key2Value:break; //按鍵2處理

//case Key3Value:break;//......... //按鍵N處理

default:break; //無對應(yīng)按鍵,或其它按鍵值處理

}

KeyValue=0; //清除按鍵值

KeyReadyFlag=FALSE; //清空 按鍵準(zhǔn)備(響應(yīng))標(biāo)志

}

}

void main() //主函數(shù)

{

while(1) //循環(huán)系統(tǒng)

{

KeyResp(); //調(diào)用 按鍵響應(yīng)函數(shù)

}

}

用c語言定義申請一個動態(tài)矩陣,怎樣給動態(tài)矩陣怎樣賦初值

#include?stdlib.h

#define?ROW?10

#define?COL?10

int?**matrix;

//動態(tài)申請空間

matrix?=?(int**)?malloc(sizeof(int*)?*?ROW);

for(int?i?=?0;?i??COL;?i++)

{

matrix[i]?=?(int*)?malloc(sizeof(int)?*?COL);

}

//賦值

for(int?i?=?0;?i??ROW;?i++)

{

for(int?j?=?0;?j??COL;?i++)

*(*(matrix+i)+j)?==?0;????

}

c語言矩陣怎么寫?

方法1:直接定義10*10的數(shù)組,讀取全部數(shù)據(jù),再根據(jù)選擇的行列數(shù)打印輸出部分?jǐn)?shù)據(jù)。

方法2:通過文件流指針的移動,跨過不需要的內(nèi)容。(這里控制文件流指針可利用ftell和fseek函數(shù)來移動指定字節(jié)數(shù))我是利用fscanf讀取需要的內(nèi)容,遇到需要跳行就用fgets來跳過。(注意常量參數(shù)根據(jù)自己需求修改)。

說明:邊讀取邊打印輸出,就不需要變量存儲。我的代碼是把讀取出來的內(nèi)容存放在三維數(shù)組中(文件內(nèi)容你沒指定,如是單純數(shù)字,二維數(shù)組即可,我是作為字符串處理,故用三維數(shù)組。),數(shù)組是根據(jù)實際大小,動態(tài)申請,寫成兩個獨(dú)立函數(shù)。

下面是代碼:

#include stdio.h

#include string.h

#include malloc.h

#define MAXR 10//文件中矩陣最大行

#define MAXC 10//文件中矩陣最大列

#define MS 3//矩陣中元素字符串最大字符數(shù)(包含結(jié)束符號,不可小于實際內(nèi)容)

#define MBUF 100//文件中一行最大字符數(shù),可設(shè)置大一點

char ***getMem(int r,int c,int len);//動態(tài)申請一個三維數(shù)組

void freeMem(char ***datas,int r,int c);//釋放數(shù)組空間

void showDatas(char ***datas,int r,int c);//打印輸出結(jié)果

int main()

{

int r=MAXR+1,c=MAXC+1,i=0,j=0;

char ***datas=NULL,str[3],buf[MBUF];

FILE *fp=NULL;

printf("請輸入要獲取的行數(shù)和列數(shù):\n");

while(r0 || rMAXR || c0 || cMAXC)scanf("%d%d",r,c);

datas=getMem(r,c,MS);

fp=fopen("C:\\test.data","r");

if(!fp) return 1;

while(fscanf(fp,"%s",str)!=-1)

{

? if(ic) strcpy(datas[j][i],str),i++;

? if(i==c)

? {

? ? ? if(!fgets(buf,sizeof(buf),fp)) break;

? ? ? i=0,j++;

? }

? if(j==r) break;

}

showDatas(datas,r,c);

freeMem(datas,r,c);

return 0;

}

void showDatas(char ***datas,int r,int c)

{

int i,j;

for(i=0;ir;i++,printf("\n"))

? for(j=0;jc;j++)

? ? ? printf("%s ",datas[i][j]);

printf("\n");

}

void freeMem(char ***datas,int r,int c)

{

int i,j;

if(!datas)

{

? for(i=0;ir;i++,free(datas[i]))

? ? ? for(j=0;jc;j++)

? ? ? ? ? free(datas[i][j]);

? free(datas);

}

}

char ***getMem(int r,int c,int len)

{

int i,j;

char ***datas=NULL,**dr=NULL;

datas=(char ***)malloc(sizeof(char **)*r);

if(!datas) return NULL;

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

{

? dr=(char **)malloc(sizeof(char *)*c);

? if(!dr) return NULL;

? else

? {

? ? ? for(j=0;jc;j++)

? ? ? {

? ? ? ? ? dr[j]=(char *)malloc(sizeof(char)*len);

? ? ? ? ? if(!dr[j]) return NULL;

? ? ? }

? ? ? datas[i]=dr;

? }

}

return datas;

}

C語言如何給用函數(shù)二維數(shù)組動態(tài)賦值

二維數(shù)組名不能直接傳給二級指針,應(yīng)該按以下方式使用:

int nChoose;

scanf("%d", nChoose); // 讓用戶輸入二維數(shù)組的大小

int **a = (int **)malloc(nChoose * sizeof(int *));

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

{

a[i] = (int *)malloc(nChoose * sizeof(int));

}

Scan(a, nChoose);

Calc(a, nChoose);

// 最后要釋放數(shù)組,也要循環(huán)

C 語言里面怎么對矩陣賦值,

//矩陣的賦值必須一個元素一個元素的賦值,如果不用循環(huán),直接賦值,再沒有規(guī)律也可以啊!至多代碼長些。如:

int a[10][10];

a[0][0]=123;

a[0][1]=3567;

........

a[9][9]=76543;//這些賦值共100行。


文章題目:C語言矩陣賦值函數(shù),c語言字符串賦值函數(shù)
標(biāo)題網(wǎng)址:http://weahome.cn/article/hdphcg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部