【答案】
void encryChar()
{
int i,j; /*定義循環(huán)控制變量*/
int str; /*存儲(chǔ)字符串的長(zhǎng)度*/
char ch; /*存儲(chǔ)當(dāng)前取得的字符*/
for(i=0;i { str=strlen(xx[i]); /*求得當(dāng)前行的字符串長(zhǎng)度*/ for(j=0;j { ch=xx[i][j] *11%256; if(ch<=32 || ch%2!=0) /*如果計(jì)算后的值小于等于32或其ASCII值是奇數(shù)*/ continue; /*則不作改變,指向下一個(gè)字符*/ else xx[i][j]=ch*11%256; /*否則用新字符取代原有字符*/ } } } 【解析】本題要對(duì)二維數(shù)組中的字符元素按行來(lái)處理。 首先用strlen()函數(shù)得到當(dāng)前行所包含的字符個(gè)數(shù)。 然后再利用一個(gè)循環(huán)來(lái)依次訪問(wèn)該行中的所有字符。對(duì)于每一個(gè)字符,先按照題目中的函數(shù)替代關(guān)系"f(p)=p*11 mod 256"計(jì)算出相應(yīng)的fp值,再用一條if語(yǔ)句判斷該值是否符合本題給定的條件:"計(jì)算后的值小于等于32或?yàn)槠鏀?shù)"。如果符合條件,則該字符不變,否則用f(p)所對(duì)應(yīng)的字符對(duì)其進(jìn)行替代。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |