二級c語言程序設計bug,《C語言及程序設計》實踐項目——發現Bug

返回:賀老師課程教學鏈接

【項目1-sin泰勒展式中的錯誤】

下面是sin函數的泰勒展式:

0024f285cf29ff111d60645dd22b8201.png(注:x取弧度值,而非角度值)

編寫了double mysin(double x)用于求sin值,卻“死”在了123°上。劇透一下,循環沒有問題(當然問題會表現在循環中)。試著用調試工具找出問題出現在哪里,然后給出解決問題的方案。

#include#define pi 3.1415926

double mysin(double x);

double myabs(double x);

int main( )

{

double angle;

for(angle=0; angle<=180; angle++)

printf("sin(%.0f°) = %.3f\n", angle, mysin((angle/180)*pi));

return 0;

}

//下面定義mysin函數,求sin值

double mysin(double x)

{

double sum=x,x_pow=x,item;

int n=1,fact=1, sign=1; //定義變量時賦初值,已經將第一項考慮到累加和sum中

do

{

fact=fact*(n+1)*(n+2); //fact用于表示階乘,在公式中作分母

x_pow*=x*x; //x_pow是分子中用于表示階乘,在公式中作分母

sign=-sign; //確定即將要累加的這一項的符號

item =x_pow/fact*sign; //計算出要累加的項

sum+=item; //將該項累加上去

n+=2;

}while(myabs(item)>1e-5);

return sum;

}

//下面定義myabs函數

double myabs(double x)

{

return ((x>=0)?x:-x);

}提示:請進入到mysin中后,注意各變量的變化,看通項是否會收斂,從而使循環能夠結束。

[ 參考解答]

【項目2-總是多一次?】

先閱讀下面的程序。這樣的結構,經常用于重復性工作。執行一次程序要完成的工作后,由操作人員選擇,決定是否還來一遍。

#includevoid dosomething(int *p);

int main( )

{

char choice='y';

int n=0;

while(choice!='N' && choice!='n')

{

dosomething(&n);

printf("按 N 退出,其他鍵繼續....");

scanf("%c", &choice); //用choice=getchar();也一樣

}

return 0;

}

void dosomething(int *p) //完成特定的業務

{

*p+=1; //本例中傳地址, *p即n

printf("第%d次完成業務!\n", *p);

}閱讀程序,發現在不退出時,想繼續一次業務,卻……,如圖:

通過單步的方式,找出問題的原因,并自行查找資料,找出解決的辦法。

[ 參考解答]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531614.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531614.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531614.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AC_Dream 1224 Robbers(貪心)

題意&#xff1a;n個搶劫犯分別搶到的金錢是k1, k2, k3,...&#xff0c;一共得到的金錢是m&#xff0c; 但是在分錢的時候是按照x1/y, x2/y, x3/y,....的比例進行分配的&#xff01;這樣的話 一些搶劫犯就會覺得不公平&#xff0c;不公平度為|xi/y - ki/m|(浮點運算)&#xff0…

C語言編程出圖形,C語言畫出各種圖形

矩形&#xff1a;(里面是空的)******** ** ** ********Program ended with exit code: 0for (int i 0; i < 5; i ) {for (int j 0; j < 7; j ) {//用條件判斷打出*號if (i 0 || i 4 || j 0 || j 6 ) {printf("*");}else{printf(" "…

AC_Dream 1211 Reactor Cooling

1 /*2 題意&#xff1a;無源無匯&#xff0c;并且每條邊的容量有上下界限的網絡流問題&#xff01;既然無源無匯&#xff0c;那么素有的節點都應該滿足“入流出流”&#xff01;3 輸出每一條邊的流量&#xff0c;使得滿足上面的條件。&#xff08;如果u->v有流…

c語言中const對于define優點,為什么大多數C開發人員使用define而不是const?

這有一個非常可靠的原因&#xff1a;C中的const并不意味著一些常量。 這只是意味著一個variables是只讀的。在編譯器需要一個常量的地方(例如非VLA數組的數組大小)&#xff0c;使用constvariables(如fieldWidth是不可能的。他們不一樣const只是一個限定符&#xff0c;它表示一個…

c語言程序設計期末試卷A,《C語言程序設計》期末試卷(A)..doc

《C語言程序設計》期末試卷(A).2011-12-1學期《C語言程序設計》期末試卷(A)班級____________姓名____________學號________________大題號一二三四總分得 分判卷 /核分人“一、選擇題”使用答題卡選擇。“二、看程序寫運行結果”答題處&#xff1a;題號答 案二、1二、2二、3“三…

codeforces B. Strongly Connected City(dfs水過)

題意&#xff1a;有橫向和縱向的街道&#xff0c;每個街道只有一個方向&#xff0c;垂直的街道相交會產生一個節點&#xff0c;這樣每個節點都有兩個方向&#xff0c; 問是否每一個節點都可以由其他的節點到達.... 思路&#xff1a;規律沒有想到&#xff0c;直接爆搜&#xff0…

c語言數組兩個值交換,如可交換兩個數組中的元素?

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓#include #include #include int main(void){int a[]{1,2,3,4,5,6,7,8};int b[]{9,10,11,12,13,15};int lena,lenb,randa,randb,randtimes;int i,temp;srand((unsigned)time(NULL));lena sizeof(a)/sizeof(int);lenb sizeof(b)/s…

Uvaoj 11248 Frequency Hopping(Dinic求最小割)

題意&#xff1a;1到n節點&#xff08;節點之間有一定的容量&#xff09;&#xff0c;需要流過C的流量&#xff0c;問是否可以&#xff1f;如果可以輸出possible&#xff0c; 否則如果可以擴大任意一條邊的容量 可以達到目的&#xff0c;那么輸出possible option&#xff1a;接…

隨機數歸并排序c語言,用C語言實現歸并排序

#include#include#include#include#define random(i) (rand()%i)#define N 12#define INFINITY 99999999//要排序的數存放在a數組匯總&#xff0c;p,q,r是數組下標void Merge(int *a,int p,int q,int r){int n1q-p1;int n2r-q;int *L(int *)malloc(sizeof(int)*n1);int *R(int …

UVAoj 11324 - The Largest Clique(tarjan + dp)

題意&#xff1a;給定一個有向圖&#xff0c;尋找一個點數最大集合&#xff0c;使得這個集合中的任意兩個點 u,v, 都有u->v 或者 v->u 或者u<>v 思路&#xff1a;首先將強連通分量通過tarjan算法求出來&#xff0c;然后進行縮點&#xff0c;也就是每一個縮點 所組成…

android開發藍牙自動連接電腦上,Android藍牙開發之自動連接設備

自動連接使用的是SharedPreferences這個來解決。private void Automaticconnection() {SharedPreferences sp getSharedPreferences("Dizhi", MODE_PRIVATE);String address sp.getString("address", "");if (!address.equals("")) …

hdu 2014鞍山賽區 5073 Galaxy

題意&#xff1a;就是給你 n 個數&#xff0c;代表n個星球的位置&#xff0c;每一個星球的重量都為 1 &#xff01; 開始的時候每一個星球都繞著質心轉動&#xff0c;那么質心的位置就是所有的星球的位置之和 / 星球的個數 現在讓你移動 k 個星球到任意位置&#xff08;多個星球…

android onitemclicklistener 參數,android – 對listview中的項使用setOnItemClickListener

大家好,有一個應用程序,可以在SD卡上保存音頻.我創建了一個listview,它從sdcard中檢索文件名.我正在嘗試設置一個監聽器,所以當單擊文件名時,我可以啟動另一個播放該文件的意圖.當我嘗試設置監聽器并傳入一個新的OnItemClickListener()時,eclipse是紅色的下劃線.我知道我必須實…

DRF之請求與響應

目錄 一、模塊與包回顧 二、反序列化校驗源碼分析(了解) 三、斷言 四、drf之請求 【1】源碼分析 【2】配置視圖類能處理的編碼格式 五、drf之響應 【1】源碼 【2】響應編碼格式 一、模塊與包回顧 模塊與包 什么是模塊&#xff1f; 一個py文件&#xff0c;被別的py文件…

android 常用注解,Android 開發小工具之:注解 Annotation

Android Support 包之一的 support-annotations是通過靜態編譯檢測來提高代碼質量的一個注解工具。里面包含了 Android 開發中常用的代碼檢測注解&#xff0c;幫助開發者提高代碼質量。通過 SDK Manager下載 Android Support Repository 后&#xff0c;在 Gradle 中通過如下聲明…

codeforces B. Friends and Presents(二分+容斥)

題意&#xff1a;從1....v這些數中找到c1個數不能被x整除&#xff0c;c2個數不能被y整除&#xff01; 并且這c1個數和這c2個數沒有相同的&#xff01;給定c1, c2, x, y&#xff0c; 求最小的v的值&#xff01; 思路&#xff1a; 二分容斥&#xff0c;二分找到v的值&#xff0c;…

android音量鍵廣播,音量控制鍵控制的音頻流(setVolumeControlStream)描述

音量控制鍵控制的音頻流(setVolumeControlStream)描述2021-01-03 16:18Android教程網 Android當開發多媒體應用或者游戲應用的時候&#xff0c;需要使用音量控制鍵來設置程序的音量大小,在Android系統中有多種音頻流,感興趣的朋友可以了解下當開發多媒體應用或者游戲應用的時候…

eclipse的使用

eclipse如何打開一個已存在的工程&#xff01;先給eclipse創建一個workspace,這個workspace就是一個文件夾用來管理eclipse項目的&#xff0c;或者修改eclipse的workspace,選擇菜單file->switch workspace->other,選擇一個已經存在的workspace。將已經存在的項目導入到wo…

Android延伸布局到狀態欄,Android 狀態欄透明

前言&#xff1a;最近項目大量用到狀態欄透明&#xff0c;網上也出現很多庫可以直接拿來用&#xff0c;個人認為沒有必要那么重引用到一個庫(有木有同學和我有一樣的想法)&#xff0c;所以研究了一番&#xff0c;在此做個記錄加強記憶也便后期查閱&#xff0c;如果無意中有幸能…

glassfish服務器默認的網頁所在的位置

http://localhost:8080/ 默認打開的網頁所在的位置 E:/glassfish-4.1/glassfish/domains/domain1/docroot/index.html 轉載于:https://www.cnblogs.com/hujunzheng/p/4052920.html