不好意思因為我是初學程式,所以問題可能比較多
這題我寫出來是這樣子,不過星星沒有印出來...想很久不知道問題在哪
#include <stdio.h>
#include <stdlib.h>
int max(int x, int y, int z)
{
int r = x;
if(y > r)
r = y;
if(z > r)
r = z;
return r;
}
int min(int x, int y, int z)
{
int r = x;
if(y < r)
r = y;
if(z < r)
r = z;
return r;
}
int main() {
printf("Please enter three integers: \n");
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
printf("The maximum integer is %d\n", max(a, b, c));
int d , e , i ;
for(d=1 ; e<=max(a, b, c)2-1 ; e++)
{
if (a % 2 !=0)
{
for(i=0 ; i<((max(a, b, c)2-1)-d)/2 ; i++)
printf(" ");
for(e=1 ; e<=d ; e++)
printf("");
}
else
printf("\n");
}
printf("\n");
}
#include <stdio.h>
我寫起來是這樣,答案是有出來的,不過關於題目提示float discount(int x); 不是太熟悉也不確定這樣是不是OK
int main(void) {
printf("please enter prices :\n");
float price,total = 0;
while(price != -1){
scanf("%f", &price);
if(price >= 500)
total += price0.5;
else if(price >= 400)
total += price0.6;
else if(price >= 300)
total += price0.7;
else if(price >= 200)
total += price0.8;
else if(price >= 100)
total += price0.9;
else
total += price;
}
printf("The summery is %.2f\n",total+1);
printf("The Average price is %.2f\n",(total+1)/5);
return 0;
}
我寫起來是這樣,不過跟題目似乎還少了回傳跟呼叫功能,也不太確定可以從哪裡修改
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
int a, b, c, D, spD, x1, x2;
printf("請輸入一元二次方程式的三個係數,如 aX^2 + bX + c = 0\n以a b c表示\n");
while(scanf("%d %d %d", &a, &b ,&c)==3){
D=(bb) - (4ac);
if(D>0){
spD=sqrt(D);
x1= (-b+spD)/(2a);
x2= (-b-spD)/(2a);
if (x1==x2){
printf("此一元二次方程式的解為兩相等實根(重根) X=%d\n", x1);
}
else {
printf("此一元二次方程式的解為兩相異實根 X=%d或%d\n", x1, x2);
}
}
else if(D==0){
x1= (-b)/(2a);
if(b==0){
printf("此一元二次方程式的解為兩相等實根 X=0");
}
else{
printf("此一元二次方程式的解為兩相等實根(重根) X=%d\n", x1);
}
}
else{
printf("此一元二次方程式無實數解\n");
}
}
printf("請輸入正確的三項係數");
system("PAUSE");
return 0;
}
不知道有沒有能請教的大神...
第一題
#include <stdio.h>
#include <stdlib.h>
int max(int x, int y, int z)
{
int r = x;
if(y > r)
r = y;
if(z > r)
r = z;
return r;
}
int min(int x, int y, int z)
{
int r = x;
if(y < r)
r = y;
if(z < r)
r = z;
return r;
}
int main() {
printf("Please enter three integers: \n");
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
printf("The maximum integer is %d\n", max(a, b, c));
int d , e , i ;
for(d=1 ; d<=max(a, b, c) ; d++)
{
//if (a % 2 !=0)
//{
for(i=0 ; i<((max(a, b, c)*2-1)-((d-1)*2+1))/2 ; i++)
printf(" ");
for(e=1 ; e<=((d-1)2+1); e++)
printf("");
printf("\n");
//}
//else
//printf("\n");
}
printf("\n");
}
第二題
#include <stdio.h>
float discount(int x) {
float fret;
if(x >= 500)
fret = x0.5;
else if(x >= 400)
fret = x0.6;
else if(x >= 300)
fret = x0.7;
else if(x >= 200)
fret = x0.8;
else if(x >= 100)
fret = x*0.9;
else
fret = x;
return fret;
}
int main(void) {
printf("please enter prices :\n");
float price,total = 0;
while(price != -1){
scanf("%f", &price);
total += discount(price);
// if(price >= 500)
// total += price0.5;
// else if(price >= 400)
// total += price0.6;
// else if(price >= 300)
// total += price0.7;
// else if(price >= 200)
// total += price0.8;
// else if(price >= 100)
// total += price*0.9;
// else
// total += price;
}
printf("The summery is %.2f\n",total+1);
printf("The Average price is %.2f\n",(total+1)/5);
return 0;
}
第三題
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int b24ac(int a, int b, int c) {
int ret;
ret = bb - 4a*c;
return ret;
}
int main(){
int a, b, c, D, spD, x1, x2;
printf("請輸入一元二次方程式的三個係數,如 aX^2 + bX + c = 0\n以a b c表示\n");
while(scanf("%d %d %d", &a, &b ,&c)==3){
// D=(bb) - (4ac);
D = b24ac(a, b, c);
if(D>0){
spD=sqrt(D);
x1= (-b+spD)/(2a);
x2= (-b-spD)/(2a);
if (x1==x2){
printf("此一元二次方程式的解為兩相等實根(重根) X=%d\n", x1);
}
else {
printf("此一元二次方程式的解為兩相異實根 X=%d或%d\n", x1, x2);
}
}
else if(D==0){
x1= (-b)/(2a);
if(b==0){
printf("此一元二次方程式的解為兩相等實根 X=0");
}
else{
printf("此一元二次方程式的解為兩相等實根(重根) X=%d\n", x1);
}
}
else{
printf("此一元二次方程式無實數解\n");
}
}
printf("請輸入正確的三項係數");
system("PAUSE");
return 0;
}
有了!!謝謝大神,我有再稍微做點修改,這題我想了快兩天
#include <stdio.h>
#include <stdlib.h>
int max(int x, int y, int z)
{
int r = x;
if(y > r)
r = y;
if(z > r)
r = z;
return r;
}
int min(int x, int y, int z)
{
int r = x;
if(y < r)
r = y;
if(z < r)
r = z;
return r;
}
int main() {
printf("Please enter three integers: \n");
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
printf("The maximum integer is %d\n", max(a, b, c));
int d , e , i ;
for(d=1 ; d<=max(a, b, c) ; d++)
{
//if (a % 2 !=0)
//{
for(i=0 ; i<((max(a, b, c)*2-1)-((d-1)*2+1))/2 ; i++)
printf(" ");
for(e=1 ; e<=((d-1)2+1); e++)
printf("");
printf("\n");
//}
//else
//printf("\n");
}
printf("\n");
}
再次謝謝大神,三題在修改之後都有出來了
想再請問就是說星星題提示的函式
void print_star(int line_number); 我應該怎麼把它弄上去會比較好
#include <stdio.h>
#include <stdlib.h>
int a,b,c;
void print_star(int line_number) {
for(int i=0 ; i<((max(a, b, c)*2-1)-((line_number-1)*2+1))/2 ; i++)
printf(" ");
for(int e=1 ; e<=((line_number-1)2+1); e++)
printf("");
printf("\n");
}
int max(int x, int y, int z)
{
int r = x;
if(y > r)
r = y;
if(z > r)
r = z;
return r;
}
int min(int x, int y, int z)
{
int r = x;
if(y < r)
r = y;
if(z < r)
r = z;
return r;
}
int main() {
printf("Please enter three integers: \n");
// int a, b, c;
scanf("%d%d%d", &a, &b, &c);
printf("The maximum integer is %d\n", max(a, b, c));
int d , e , i ;
for(d=1 ; d<=max(a, b, c) ; d++)
{
//if (a % 2 !=0)
//{
print_star(d);
// for(i=0 ; i<((max(a, b, c)*2-1)-((d-1)*2+1))/2 ; i++)
// printf(" ");
// for(e=1 ; e<=((d-1)2+1); e++)
// printf("");
// printf("\n");
//}
//else
//printf("\n");
}
printf("\n");
}
如果下次程式碼還是這樣直接貼上的話
不會再有人回答了
至少我不會
不好意思請教一下
第二題的不應該是只需回傳折扣數而已嗎
第二題的不應該是只需回傳折扣數而已嗎
沒錯
就看你希望 discount 做多少事而定
200元打八折,「折扣數」可能有四種寫法
(「打八折」有另一種寫法是 20% off,
所以discount
應該是 80% 還是 20% ?)
我選擇第一種寫法
我猜你的意思應該是第三種寫法
moa = discount(200);//直接回傳答案 160
moa = 200 - discount(200);//200 - 40
moa = 200 * discount(200);//200 * 0.8
moa = 200 * (1 - discount(200));//200 * (1 - 0.2)
再回頭看了一次題目,題目講的是「折數」
那就是你說得對
應該用第三種或第四種寫法比較正確
以題目敘述就只想到了第三種
完全沒考慮到第四種寫法
感謝海綿大神的講解!