購物編程題
以下在VC++6.0下編寫並測試通過!
1.
#include <stdio.h>
float r1(float m);
void main()
{
float s,r;
printf("輸入圓的半徑:");
scanf("%f",&r);
s=r1(r);
printf("圓面積:%.2f\n",s);
}
float r1(float r)
{
float s;
s=3.14*r*r;
return(s);
}
2.
#include <stdio.h>
float fun(float p,int n)
{
if(n>=20)
return p*n*0.8;
else if(n>=10)
return p*n*0.9;
else
return p*n;
}
void main(void)
{
float p=0;
int n=0;
printf("please input the unit price p and numbers n\n");
scanf("%f %d",&p,&n);
printf("%8.2f\n",fun(p,n));
}
3. 三個整數由大到小排序
#include<stdio.h>
void sort(int a,int b,int c)
{ int temp;
if(a<b){temp=a;a=b;b=temp;}
if(a<c){temp=a;a=c;c=temp;}
if(b<c){temp=b;b=c;c=temp;}
printf("from big to small is:%d %d %d\n",a,b,c);
}
void main()
{int a,b,c;
printf("please input three numbers a b c\n");
scanf("%d %d %d",&a,&b,&c);
sort(a,b,c);
}
B. C++編程題目,「類」相關,兩道十分簡單,另外兩道也不是很難,求編程高手解答!
呵呵,你是上肖老師的C++吧。。。
C. 一道編程題,請講一下思路就好。
額,這倒題對於我這種數學本身就不太好的人來說,太難了,頭都想大了(智商是硬傷啊)!不過我倒是想把自己能想到的拿出來分享一下,僅供參考;
首先,我要提出一個錯誤,a[1000001]這樣的寫法是不對的,具體最大不太清楚,但肯定沒有這么大的下標了,在這里的目的只是為也設置一下足夠大的數組即可,不需要搞那麼大!
好,下面正題開始:
如題,設共有n個物品,m個人,生氣程度最小的人生氣程度為l,最大人的生氣程度(即總共搬運物品)為r,第i個物品的重量為a[i],第j個人生氣程度為b[j](此處未用到),假設只有最大和最小兩種結果,則他們的平均值設為mid,若要使最大生氣程度的人的生氣值最小,則每個人的生氣值都相等或近似相等且為最大值(因為如此一來,總數不變的情況下,得到的均值才最小),如下題解(注釋)以此為基礎;
scanf("%d%d",&n,&m);//輸入n個物品和m個人
for(i=1;i<=n;i++){//輸入n個物品各自的重量,依次序賦值,並保存總重量sum備用
scanf("%d",&a[i]);
sum+=a[i];
}
r=sum;//將總數默認為最大生氣值的默認值(實際是不是可能的)
l=0;//將0作為最小生氣的人的生氣值(從這里的開始計算)
intrs;//找到的最大值的控制開關
while(r-l>1){//如果最大值和最小時之間相差小於1,則認為已找到最優解
mid=(l+r)/2;//算出中間值(縮小范圍,中間的情況也是如此,沒必要重復)
sum=0;//用以記錄各個值間的大小大概關系
rs=1;
for(i=1;i<=n;i++){
if(sum+a[i]<=mid)sum+=a[i];//最開始時,各值不夠大,讓他們相加好了
else{//相加到一定程度後,轉換另外一種演算法,把他的值降小,重新計算
sum=a[i];
if(sum>mid){//如果這個值遠遠大於中間值,則基本上他就是最大值了,但亦不排除後面會有值比此大,因此未用break語句;而是賦予開關一個很大的值
rs=10000000;
}
rs++;//開關加1,證明大於平均值的生氣值又多了一個
}
}
if(rs>m)l=mid;//生氣值大於中間值的人數已大於總人數,也就是說大家可以再上一台階
elseif(rs<=m)r=mid;//否則,大家應當降一個級別,將中間值賦予最大值
}
如此算下來,只要循環結束,以r為值即可得到最大生氣的最小值(有點暈啊,沒關系,多看看就好,看不懂也沒關系,反正也不一定正確,哈哈);
D. C#編程題
簡單
if(yes)
{
check();
}
else
{
continue;
}
check()
{
if()
{}
else
{}
}
E. 一道JAVA編程題
public class Person {
private String userName;// 名字
private int age;//
public Person(String userName, int age) {
this.userName = userName;
this.age = age;
// TODO Auto-generated constructor stub
}
public void display() {
System.out.println("姓名:" + userName);
System.out.println("年齡:" + age);
}
public static void main(String[] args) {
Person person=new Person("asss",1);
person.display();
}
}
F. C語言編程應用題
#include<stdio.h>
intmain()
{doublex,y;
charc;
printf("請選擇普通顧客/會員顧客(P/H):");
scanf("%c",&c);
printf("請輸入商品總額:");
scanf("%lf",&x);
if(c=='H'||c=='h')
if(x>=1000)y=0.7*x;
elsey=0.8*x;
else
if(x>100)y=0.9*x;
elsey=x;
printf("應收費:%.2lf
",y);
return0;
}
G. C語言題:輸入一個購物金額求輸出折扣率與付款金額,如圖
#include<stdio.h>
intmain()
{
inti;floatpay;
scanf("%f",&pay);
if(pay<=0)printf("輸入購物金額有誤!");
else
{
if(pay<200)i=10;
elseif(pay<500)i=9;
elseif(pay<1000)i=8;
elsei=7;
i/10?printf("不打折,"):printf("折扣率:%d折,",i);
printf("實際付款金額:%.2f元",pay*i/10);
}
return0;
}
H. VB程序設計題:已知某商店全場9折,一次購物如果滿1000元8折,3000元以上7折,5000元以上5折
private sub canmmand1_click()
dim a as single
dim m as single
dim z as string
a= val(inputbox "輸入價格")
select case a
case is >=5000
m=a*0.5
z="五折"
case is >=3000
m=a*0.7
z="七折"
case is >=1000
m=a*0.8
z="8折"
case is >0
m=a*0.9
z="九折"
case else
msgbox "輸入錯誤!"
exit sub
end select
msgbox "應付款"& a & "打" & z & "後,實付款" & m
end sub
I. c語言編程題
#include <stdio.h>
int main()
{ double x,y;
printf("請輸入消費總額:\n");
scanf("%lf",&x);
if(x<1000) y=x;
else if(x<2000) y=0.9*x;
else if(x<3000) y=0.8*x;
else y=0.7*x;
printf("%.2lf\n",y);
return 0;
}
//祝你學習進步