1樓:久病成
char的範圍是-128~127的
你362就溢位了嘛
是這樣的
0362 0是表示8進位制
於是362在10進位制下是242
242溢位了(-128~127)
於是結果變成242-128-128=-14
2樓:
要明白這個,首先要明白記憶體中 c 變數是什麼樣子的。
整數在記憶體中是以補碼的形式存取的。
c = 0362 這是一個 8 進位制的標識方法。換算成二進位制是:1111 0010
又因為,char 這個型別是有符號的 8 位型別(這個不確定,得看一下 c 標準和編譯器具體行為,但是你說的現象肯定是這樣的),最高位為符號位。
符號位為 1 ,所以為負數,負數的補碼是:取反,再加一。於是, 去掉符號位,c 取反就是 000 1101 再加一就是 000 1110,換算成十進位制就是 14,在加上符號位,於是就是 -14 了
不知道講清楚沒。。。。要學好 c 語言,一定要了解計算機。尤其是記憶體。還有~有的時候標準和實現是兩碼事。。。
3樓:匿名使用者
c = 0362 //八進位制數
二進位制表示為 011 101 010
由於c是char型別 只佔一個位元組 8位 就是 11 101 010
列印出來 就是-14 了
4樓:唯你只愛
char型的最大值是255,顯然溢位了,肯定出錯,至於為什麼是-14要看資料儲存了
5樓:匿名使用者
c=0362
這個是八進位制的,轉換成十進位制即正常的那麼就是-14了哦!
c語言問題
6樓:一個能通過的名
首先你的scanf語句不對,應該是:scanf("%lf %lf", &a, &b),正確格式是:scanf("《格式化字串》",《地址表》);
你的printf語句應該是:printf("得到一個和為%f + %f = %f\n" ,a,b,a+b);,正確格式是:printf("輸出格式型別",變數),前面的輸出格式型別的數量,要和變數的數量一樣
7樓:
printf("得到一個和為%f + %f = %f\n", a+b);
你寫了三個佔位符%f,為什麼後面只有一個值對應?
請把a、b、a+b這三個值都寫上去
另外,你的scanf為什麼要把&a和&b寫到引號裡面?請改
c語言問題
8樓:
#include
#define n 30
typedef struct student;
student r[n];
int main(void)
num=1;
for(i=0;ir[max].score)max=j;
if(max!=i)
if((i>0)&&(r[i].score小錯誤比較多,格式有點亂,整理**縮排就花了好久……基本都是小錯誤,對比看一下就知道了。
c語言程式設計問題
9樓:手機使用者
解題思bai路:完全跟百錢買百雞的問題是du一樣的!設大zhi馬,中馬,小馬dao的匹數分別為x,y,z;可以得到回兩個方程:
x+y+z=100; 3*x+2*y+z/2=100; 將第二個
答方程變形為:6*x+4*y+z=200; 從第二個方程變形的方程中,我們可以看到,x的最大值為200/6=33.3;即中馬,小馬都不用,只用大馬最多用34;1<=x<=34; 同樣中馬y的最大值為200/4=50;1<=y<=50;再將第三個方程減去第一方程變成5*x+3*y=100;這個方程就是我們簡化後的判斷條件用列舉法求可的如下的程式:
#include
int main()}
c語言問題
10樓:風林火陰山雷
先回答你第一個問題,遞迴函式確實是讓ch變數不斷獲得新的值,從1到5。需要注意的是,之後每一次的賦值只在當前的大括號內有效:
void get_put()
以此類推。
第一個問題,你已經注意到這是遞迴了,那麼輸入12345並按回車後,自然出現了get_put函式五層巢狀,也就有5次putchar了。
如有問題歡迎追問~
c語言問題
11樓:聽不清啊
當輸入abc時,輸出結果是(abc6789)
因為當執行gets(ss);時,
ss[10]就變為了"abc",其後就是串結束符。儘管3,4,5仍存在於陣列中,但是卻已經被忽略掉了。後面的"6789"就被連線到'c'的後面了。
12樓:樂酷科技
gets(ss)從ss首地址開始存放 原來的被覆蓋 即現在是abc'\0'了,strcat把後面的字串連線到前面字元的後面 從'\0'開始 最後新增新的'\0' 所以輸出結果就是abc6789了
c語言問題 10
13樓:
#include
#define n 10
int delnum(int a,int num,int n){int i,j=0;
/*用j記錄陣列a中不等於num的元
素個數(即需要儲存的元素個數),
邊掃描陣列a邊統計j,並將不等於num的元素向前放置在j位置上,最後修改陣列的長度
*/for(i=0;i
示例執行如下:
14樓:匿名使用者
如果有幾個相同的值都刪除嗎?
c語言問題,C語言問題?
include include int main max min i 0 sum i 0 i 1 i 2 i 3 i 4 i 5 i 6 for j 0 j 6 j printf 去掉一個最高分 0.6lf max printf 去掉一個最低分 0.6lf n min printf 該選手最後的得分...
C語言問題C語言問題,C語言小問題段錯誤是什麼
str2num char p num num k return num c語言問題c語言問題 include int main int h,m scanf d d h,m printf s num h if m 0 else printf o clock printf n return 0 c語言小...
c語言問題程式設計,C語言程式設計問題
程式修改輸出加個 元 後面執行結果可看到 編譯執行結果 如果輸入50 如果輸入90 如果輸入100 如果輸入110 include int main if x 50 y 80 x printf f n y return 0 c語言程式設計問題 解題思bai路 完全跟百錢買百雞的問題是du一樣的 設大...