給20點,有關c++的問題,我的程式有點小錯誤,請幫我改正
以下是我寫的c++程式,有點小錯誤,請幫我改正,感謝,另外還有兩個題目,會的請幫忙,一樣都是給20點
三提的題目在此
(1)設計程式以便將24小時表示的時間轉換成以12小時表示的時間;例如14:25應轉換成2:25PM。此程式的輸入為兩個整數,程式中應設計三個函式來處理輸入的工作、時間轉換的工作與輸出的工作;main函式中應包含迴圈來重複時間轉換,直到使用者回答No之後為止。
(2)已知kilogram = 2.2046 pounds、kilogram =1000 gram且pound = 16 ounces;請設計下列函式:
(壹)用來將以kilogram與gram為單位之重量轉成以pound與ounces為單位之重量之函式,
(貳)用來將以pound與ounces為單位之重量轉成以kilogram與gram為單位之重量之函式,
(參)main函式依使用者的輸入值來決定做那一種轉換,若使用者輸入1則做(壹)的轉換,若使用者輸入1則做(貳)的轉換,main函式中應包含迴圈來重複轉換工作,直到使用者回答No之後為止。
(3) 請設計main( )函式與一個名為seriesSum之函式:
(壹) seriesSum函式是用以計算級數a1 + a2 + … + an之sum值;
(a)此級數可為等差級數或等比級數,若為等差級數,則sum=(a1+an)*n/2;若為等比級數,則sum = a1*(1–rn) / (1-r);
(b)seriesSum函式應有4個參數(parameter);其中一個名為type之參數用以區分是那一種級數,若type之值為1,則表等差級數;若type之值為2,則表等比級數;其餘3個參數,分別代表等差級數中之a1、an、與n,或代表等比級數中之a1、r、與n。
(貳) main( )函式用以
(a)輸入等差級數中之a1、an、與n之值,再呼叫seriesSum函式以計算等差級數之sum值,並將sum輸出;再
(b)輸入等比級數中之a1、r、與n之值,再呼叫seriesSum函式以計算等比級數之sum值,並將sum輸出。
(註:庫存函式pow(x,y)可用以計算xy之值 )
以下是我寫的程式,我寫的是第3提
#include<iostream>
using namespace std;
double seriesSum(char type,double a1,double an,double n,double r);
int main ()
{
int sum;
double a1,an,n,r;
char type;
cout<<\"請輸入一個數字為1或2\"<<endl;
cin>>type;
if(type==1)
{
cout<<\"請輸入等差及數的首項,末項與項數\"<<endl;
cin>> a1 >> an >> n ;
sum=seriesSum(type,a1,an,n,r);
cout<< sum <<endl;
}
else
{
cout<<\"請輸入等比及數的首項,公比與項數\"<<endl;
cin>> a1 >> r >> n ;
sum=seriesSum(type,a1,r,n,an);
cout<< sum <<endl;
}
return 0;
}
double seriesSum(char type,double a1,double an,double n,double r)
{
if(type==1)
return ((a1+an)*n/2);
else
return (a1*(1-(r,n))/(1-r));
}
現在不管我輸入1或2都是跑等比級數,可以幫我改正嗎?
還有等比的答案跑出來都是0,可以幫忙改正一下ㄇ?
希望另外兩題可以一起幫我解答一下,感謝各位
2 個解答
- AlmondLv 61 0 年前最佳解答
3. #include<iostream>#include<math.h> //幫你加入math.h題頭檔。using namespace std;double seriesSum(char type,double a,double b,double c); /*幫你把參數簡單化,就type , a , b, c這樣而已,看的比較清楚。*/int main (){int sum;double a1,an,n,r;char type;cout<<"請輸入一個數字為1或2"<<endl;cin>>type;if(type=='1') //幫你修改if判斷式這行而已。{cout<<"請輸入等差及數的首項,末項與項數"<<endl;cin>> a1 >> an >> n; //提醒你,輸入時是,首頁 末項 項數,不要輸入錯了。sum=seriesSum(type,a1,an,n);cout<< sum <<endl;}else{cout<<"請輸入等比及數的首項,公比與項數"<<endl;cin>> a1 >> r >> n; //提醒你,輸入時是,首頁 公比 項數,不要輸入錯了。sum=seriesSum(type,a1,r,n);cout<< sum <<endl;}return 0;}double seriesSum(char type,double a,double b,double c){if(type=='1')return ((a+b)*c/2); //如果type是1的話,a=a1,b=an,c=n。elsereturn (a*(1-pow(b,c))/(1-b)); //type是2的話,a=a1,b=r,c=n。}執行結果:
圖片參考:http://img96.imageshack.us/img96/4203/0721ao9.jpg
2006-07-21 11:41:20 補充:
參考資料: 自己