1樓:束已
這個和float表示的有效位有關係:
float 是單精度:只能表示7個有效位,所以你111111.111相當於只能把111111.1賦值給x,y變是如此。
如果你用double float x,y;就不會有這種情況了。因為雙精度double float 可以表示9個有效位。
double float 的有效位是15到16位
2樓:常樂常知足
float 型資料的儲存範圍是 1.2 * 10 ^ -38 ----- 3.5 * 10 ^38,其精確度(有效數字,浮點數儲存方式是指數+尾數,尾數的位數決定其精確度)只有 6 -- 7位,你的有效數字有9位,超過了其標準,可以用double試試,不過double也是有精確度的,double的精度為15~16位。
3樓:匿名使用者
浮點數在記憶體中是以近似值儲存, float精確度也有問題, float小數有效精度只有6-7位
4樓:
只是精度問題,不同的作業系統或編譯器結果都可能不相同
c語言問題 求大神解答
5樓:匿名使用者
按題中的意思就是兩個瓶子換一瓶汽水(不含瓶子),所以下面的**就搞定了
#include
int main()
else
printf("%d\n",sum); //這是答案return 0;}
6樓:__________範
可以借用汽水瓶這點就非常難解決了。
int a,b,c,sum=0;//a是空氣水瓶 b是不夠3個的汽水 c是換了幾瓶
//用a除以3 取整數 加到c裡
//用a除以3 取餘數 存入b中 判斷b是不是等於0//等於零輸出c
//不等於0,用3減去b結果是否等於1
//等於1向c+1 輸出c
//不等於1 輸出c
語句我就不幫你寫了 大體意思就是這樣
求c語言大神看看這問題,,,,
7樓:匿名使用者
你發的程式本身是有問題,我猜測是這樣的如下**:
#include
#include
#include
int fun(char *str)
int main()
按這樣的話,答案是c的。 要麼是你列印錯誤,要麼是印刷錯誤。
8樓:匿名使用者
沒列印完吧,大概是 if(str[i] != ' ' ) // 如果不是空格
c語言問題,求大神解答
9樓:
大致看了一下,覺得總體思路可行,但具體操作就有問題了。一是feof這個函式的引用就有問題:這個函式不讀檔案只檢查剛剛發生的讀操作是否賣到或越過了檔案結束符;**中第一次進入while時還沒有發生讀動作,無法確定的判斷會把錯誤依次轉嫁到檔案最後。
二是用fgets這個函式讀檔案是由n或'\n'控制結束的,中間的空格也會被正確讀取,而單詞是作空格或'\n'隔開的,所以就不會一個單詞一個單詞地正確讀出來。我試著寫一個供你參考——
#include "stdio.h"
#include
int main(int argc,char *ar**)while(fscanf(fp1,"%s",w1)==1)else if(e12==0)
else if(e13==0)
else if(feof(fp3))
}else if(feof(fp2))
}fclose(fp1);
fclose(fp2);
fclose(fp3);
printf("in the 3 dictionaries there is no the same words.\n");
return 0;
}已經充分驗證過。查詢速度可能還有提高餘地。不認為演算法很好,有問題續問。
10樓:yzx浪子
//node* head表示頭指標
//頭指標指向頭結點,頭結點的值無用,頭結點的指標指向連結串列內第一個元素
//當null == head->next時連結串列為空,當null == head時連結串列為無效連結串列
#include
#include
typedef struct node node;
void* _malloc(size_t size)
return res;
}node* next = node->next;
node->next = _malloc(sizeof(node));
node->next->val = val;
node->next->next = next;
}void sortinsert(node* head, int val) }}
}void erasep(node* last)
}void erase(node* head, int n)
if (null != head)
}void showall(node* head)
printf("\n");}}
int main(int argc, char* ar**)
執行截圖
求c語言大神解答~
11樓:紫薇參星
你的統計字母數字空格和其他字元的c語言程式,我幫你改完了,你看看吧.(主要問題是數字和字母的if判斷語句應該是一個範圍)(改動的地方見註釋)
#include
int main()
printf("剛才輸入的字元中英文字元個數為%d\n",ch);
printf("剛才輸入的字元中空格個數為%d\n",space);
printf("剛才輸入的字元中數字個數為%d\n",num);
printf("剛才輸入的字元中其他個數為%d\n",n);
return 0;}
C語言問題,求解答,C語言問題,求大神解答
f函式中的a每次使用外面傳入的2,b是區域性變數,後每次都是1,c是靜態變數,函式每次執行會在上次值 1 所以最後執行三次,輸出為789 程式的輸出是 789 c語言問題,求解答 執行abc a 1 首先進行巨集代換過程,是把 a 1去替代 定義的巨集函式 x x 中的x,即得到式子 a 1 a 1...
求大神解答c語言程式設計問題求分析,求大神解答 C語言程式設計問題!!!求分析
while迴圈第一次,i 1 n 3 k 3 a i 1 i n k a i 成立,i 第二次,i 2 n 3 k 3 a i 4 i n k a i 不成立,while迴圈結束 for迴圈第一次 j n 1 2,i 2 j i成立a j i a i 即a 4 a 2 4 j 變為1 第二次j 1 ...
求高手解答c語言問題,求高手解答,C語言問題
當使用者按下某個鍵時,1.鍵盤會檢測到這個動作,並通過鍵盤控制器把掃描碼 scan code 傳送到計算機 鍵盤掃描碼跟具體的硬體有關的,不同廠商對同一個鍵的掃描碼有可能不同。2.計算機接收到掃描碼後,將其交給鍵盤驅動程式 3.鍵盤驅動程式把這個掃描碼轉換為鍵盤虛擬碼 虛擬碼與具體硬體無關,不同廠商...