c語言高手請進,C語言高手請進

2022-03-09 18:45:47 字數 5824 閱讀 4768

1樓:

一共5個非0字元。ab

\066

\xad9

2樓:

結果是5啊

樓上已經說的很清楚了

\066 :八進位制數轉義

\xad :十六進位制數轉義 加上a

b9一共就5個啊

不過理論上是沒有問題

為什麼我幫你在 tubor c++3.0中執行卻會報錯呢~~!

我很鬱悶啊~~!

3樓:匿名使用者

你需要搞清楚轉義字元的含義,

"ab\066\xad9"中一共包含5個非0字元。

a b\066 :八進位制數轉義

\xad :十六進位制數轉義

9 給你一些參考:

轉義字元 意義 ascii碼值(十進位制)

\a 響鈴(bel) 007

\b 退格(bs) 008

\f 換頁(ff) 012

\n 換行(lf) 010

\r 回車(cr) 013

\t 水平製表(ht) 009

\v 垂直製表(vt) 011

\\ 反斜槓 092

\? 問號字元 063

\' 單引號字元 039

\" 雙引號字元 034

\0 空字元(null) 000

\ddd 任意字元 八進位制

\xhh 任意字元 十六進位制

c語言問題,高手請進啊。。。

4樓:

printf("%d\n",a[0]+a[1]*7+a[2]*49);改成printf("%d\n",i);

因為你這裡的i是7進位制數,是%10來取各位數的,你再a[0]+a[1]*7+a[2]*49運算就是轉成10進位制數了,你再仔細看看

5樓:

#include "stdio.h"

int main()

if(a[0]==0)

/*a[0]+a[1]*7+a[2]*49 不是十進位制數 i 的七進製表示。

比如十進位制數字 281 (a[0] = 1 , a[1] = 8 , a[2] = 2),

按照你的演算法,它的七進製表示是: a[0]+a[1]*7+a[2]*49 = 155 。

這從直觀上就知道不對。因為七進位制比十進位制的進位制要小(一個是七,一個是十),

因此兩個數字的數碼一樣,進位制大的數字肯定要大。

如十進位制數字數碼為 281 ,和七進位制數字數碼為 281 ,十進位制的 281 比七進位制的 281 要大。

那麼十進位制數字 281 比七進位制的數字 155 更加要大。

因此,十進位制數字 281 的七進製表示肯定不是 155 。

正確的十進位制數轉七進位制的演算法是:

m=i;

j=0;

// 將十進位制的自然數 i 各位上的數字分離出來

while(m>0)

同理 a[2]+a[1]*9+a[0]*81 也是沒有任何意義的

*/ if(a[0]+a[1]*7+a[2]*49 == a[2]+a[1]*9+a[0]*81) }

return 0;

下面是示例程式:

#include "stdio.h"

// 改變這個常量,可以找任意位數的,不僅僅是三位數

const int num_of_digit = 2;

int main()

j++;

m=m/7;

}while(m>0);

// 十進位制的自然數 i 轉換成七進位制是少於 num_of_digit 位數,繼續列舉下一個數字

if(j < num_of_digit)

// 十進位制的自然數 i 轉換成七進位制是剛好 num_of_digit 位數,進行九進位制轉換

else if(j == num_of_digit)

m=m/9;

}while(m>0);

// 十進位制的自然數 i 轉換成九進位制是剛好 num_of_digit 位數

if(j == num_of_digit)

} if(j == num_of_digit)

printf(" (7)");

// 輸出該自然數的九進位制

for(j = num_of_digit-1 ; j >= 0 ; j --)

printf(" (9)\n");

} }}// 十進位制的自然數 i 轉換成七進位制是大於 num_of_digit 位數,不再列舉下一個數字,跳出

else if(j > num_of_digit) }

return 0;}/*

執行結果(const int num_of_digit = 3):

248(10) 503 (7)305 (9)

驗證1:503(七進位制整數)的十進位制表示是否是 248

證明1: 503(7) = 5*7*7 + 0*7 + 3*1 = 248

驗證2:305(九進位制整數)的十進位制表示是否是 248

證明2:305(9) = 3*9*9 + 0*9 + 5*1 = 248

驗證3:

七進位制表示式是一個三位數,

九進製表示也是一個三位數,

且這兩個三位數的數碼順序正好相

證明3:

從直觀上就能驗證

沒錯,結果裡面也有個 248 ,但它是十進位制自然數!不是七進位制自然數!

你的程式輸出了一個 248 ,真的只是巧合。。。

執行結果(const int num_of_digit = 1):

0(10) 0 (7)0 (9)

1(10) 1 (7)1 (9)

2(10) 2 (7)2 (9)

3(10) 3 (7)3 (9)

4(10) 4 (7)4 (9)

5(10) 5 (7)5 (9)

6(10) 6 (7)6 (9)

執行結果(const int num_of_digit = 2):

31(10) 43 (7)34 (9)

執行結果(const int num_of_digit = 4):

沒有 執行結果(const int num_of_digit = 5):

沒有 執行結果(const int num_of_digit = 6):

沒有執行結果(const int num_of_digit = 7):

731445(10) 6134331 (7)1334316 (9)

811518(10) 6616641 (7)1466166 (9)

執行結果(const int num_of_digit = 8):

沒有執行結果(const int num_of_digit = 9):

沒有執行結果(const int num_of_digit = 10):

沒有...*/

6樓:小李戀小晶

沒來高手 我這個菜鳥 幫你解決吧~

陣列a有問題啊~ a【】陣列每位都是十進位制啊 也就是每位都可以從0到9 可是 你下面 是把這個陣列當做7進位制和9進位制處理的 可是當7進位制的時候 a作為7進位制的個十百位上的三個數的話 應該是0-6的範圍~!與實際的範圍不同 9進位制的同理~

怎麼說吧 思路有問題~

最好的出現的問題 體現 在 你要是把 輸出換成a[0]*81+a[1]*9+a[2] 執行結果就變了~

等下試著寫寫 我也是暑假重拾c語言的 菜鳥一個 回答不當之處 請指正~ 寫寫~

我錯了 你思路沒問題 只是大意了~ 我修改了下 你看看 輸出是 503 七進位制的 也就是十進位制的248

#include "stdio.h"

int main()

return 0;}

c語言高手請進

7樓:

看形式是個無參函式呼叫。但c庫裡沒有這個函式,應該是個自定義函式。供參考……

c語言高手請進

8樓:

第 三 題的!

下面**大部分與你那個相似,僅作參考!

/*為了呼叫file等函式 */

#include "stdio.h"

#include "conio.h"

/* 為了呼叫atof()等函式 */

#include "stdlib.h"

#define true 1

/* 結構體宣告 */

struct zhigong

; /* 建立50個元素的結構體陣列 */

struct zhigong zg[50];

/* 建立結構體變數 */

struct zhigong zgone;

/* 職員列表中的數量 */

int n=0;

/* 獲得字串 */

char numstr[50];

main() }

} /*計算個人所得稅*/

float tgrsds(float m)

else if(m>=1000 && m<5000)

else if(m>=800 && m<1000)

tmp=sui1+sui2+sui3;

return(tmp);

} /* 新增職工的工資資訊 */

addone(void)

/*刪除個人紀錄*/

delone(void)

else }

if(flagfind==1)

printf("\n record deleted! \n");

n=n-1;

} else

return;

} /*修改個人紀錄*/

modone(void)

else }

if(flagfind==0)printf("\n can not find record! \n");

return;

} /*隨機從記憶體中查詢紀錄根據id*/

idone(void)

else }

if(flagfind==0)printf("\n can not find record! \n");

return;

} /* 輸出當月全體職工的工資資訊 */

listall(void)

else }

} /* 把所有紀錄從記憶體中寫到磁碟gongzi.rec中 */

wfile(void)

if((fptr=fopen("gongzi.rec","wb"))==null)

printf("can not open file gongzi.rec! \n");

else }

/* 把所有紀錄從磁碟gongzi.rec讀到陣列gz中 */

rfile(void) }

9樓:我才是小烏龜

找自由程式設計師做,價錢一般在500到兩千元,不要什麼事都靠別人,混得了這關混不過找工作的關

10樓:匿名使用者

大哥,這還要用到資料庫系統裡面的結構,夠牛逼

11樓:匿名使用者

兩百分想拿兩千分的成果

估計就算是兩千分 也沒有人會給你做的吧

畢竟這是要付酬勞的

12樓:江小右

教學事務管理系統,俺有差不多的

13樓:來自百丈寺揚眉吐氣的悟空

家庭作業他孃的自己做

14樓:匿名使用者

這不是一、二十分鐘能夠解決的問題。

我很忙,所以先走了...

C語言高手請進

有點複雜,演算法比較亂了點 在第一次呼叫函式int f 的時候a 還是等於4的,因為第一次n 0,所以a 6 然後自加一次,到返回的時候a 7了.第二次呼叫的時候走的演算法差不多,不過是走的else而已.你去分析下呢?順便說下 這個寫程式的可能是我們公司某個同事的徒弟?明明我們一個700多行可以實現...

C語言高手請進

你自己去書上看一下各運算子號的順序!呵呵 z y x 1 0 是0 z y x 你弄錯了吧,printf x 2?d d n x 你打錯了吧 a bre hi y bou n 是a re hi y bou後還有一換行符 printf d d n x,y 你有沒有弄錯啊 x,y 這個過號應該沒的啊!是...

請教c語言高手,請教C語言高手!

char c 指標陣列,陣列的每個元素是指標,這裡存常量字串的首地址。char cp 二級指標陣列,陣列每個元素是二級指標,這裡存了c 3 c 2 c 1 c 0 的地址,也就是上面字串順序逆序 char cpp cp 指標指向cp陣列首地址。ps,一般 指標在正常的程式裡不會出現,容易形成非常混亂...