第1个回答 2019-09-14
加分啊,哈哈
#include<iostream.h>
const
int
N=10;
void
compare(double
p[],int
n);
void
sort(double
g[],double
p[]);
void
main()
{
cout<<"欢迎进入幸运52猜数游戏"<<"t"<<"制作人:电气
C097
张欣瑞
096133"<<endl;
double
g[N]={12,16,20,40,60,55,91,43,33,50},p[10];
char
choice;//记录输入的判断是否进行的字符
for(int
a=1;;a++)
{
cout<<"现在开始游戏?请选择n(否)或者y(是)"<<endl;
cin>>choice;
if(choice=='y')
{
cout<<"游戏规则:\n"
<<"1.由玩家自选商品序号并对商品价格进行猜测"<<"\n"
<<"2.系统会对玩家所给出的价格进行分析并提示高了或者低了"<<"\n"
<<"3.对于每件商品玩家都有十次机会猜出其价格若10次机会都没有猜中则该轮游戏结束"<<"\n"
<<"4.若玩家在10次之内猜出商品价格则可以选择是否继续猜另一种商品的价格"<<"\n"
<<"5.游戏结束后系统会自动对商品进行价格排序并且现实出来商品编号"<<"\n";
cout<<endl;
for
(int
m=0;m<10;m++)
{
cout<<"请选择商品编号(0至9)"<<endl;
int
n;//n记录输入的所猜的题号
cin>>n;
compare(p,n);//调用函数
}
}
else
{
cout<<"游戏结束"<<endl;
break;
}
}
sort(g,p);
}
void
compare(double
p[],int
n)//判断猜出价格的高低以及是否正确的分函数
{
double
g[N]={12,16,20,40,60,55,91,43,33,50};
for(int
b=0;b<10;b++)
{
cout<<"请输入商品价格"<<endl;
cin>>p[b];
if(p[b]<g[n])
cout<<"Wrong"<<"\t"<<"低了"<<endl;
else
if(p[b]>g[n])
cout<<"Wrong"<<"\t"<<"高了"<<endl;
else
if(p[b]==g[n])
{
cout<<"Right!"<<"\t"<<"您猜了"<<b+1<<"次价格就猜对了"<<"\n"<<"不错!"<<endl;
b=+10;
}
}
}
void
sort(double
g[],double
p[])//把商品按照价格由低到高排序,并把排序后的商品序号显示出来的分函数
{
double
t,k[N];//c1
for(int
i=0;i<N;i++)
k[i]=g[i];
for(int
j=0;j<N-1;j++)
for(int
m=0;m<N-1-j;m++)
if(g[m]>g[m+1])
{
t=g[m];
g[m]=g[m+1];
g[m+1]=t;
}//c2---c1-c2为用冒泡法排序
for(i=0;i<N;i++)
for(int
j=0;j<N;j++)
{
if(k[j]==g[i])
cout<<g[i]<<"\t"<<"商品编号"<<j<<endl;//用查找的方法显示数组原来的序
}
}
第2个回答 2010-06-23
#include "iostream.h"
#include "time.h"
#include "stdlib.h"
class Goods
{
public:
Goods();
int Guess(int Price, int Index);
inline int GetFailCnt(int Index){return m_FailCnt[Index];};
inline void SetPrice(int Price, int Index){m_Price[Index]=Price;};
inline int GetPrice(int Index){return m_Price[Index];};
inline int* GetSort(){return m_Sort;};
void Sort();
private:
unsigned char m_FailCnt[10];
int m_Price[10];
int m_Sort[10];
};
Goods::Goods()
{
for(int i=0;i<10;i++)
{
m_Price[i]=0;
m_FailCnt[i]=0;
m_Sort[i]=i;
}
}
int Goods::Guess(int Price, int Index)
{
m_FailCnt[Index]++;
if(m_FailCnt[Index]>=10) return -1;
if(Price>m_Price[Index]) return 2;
else if(Price<m_Price[Index]) return 1;
else return 0;
}
void Goods::Sort()
{
int i,j,Temp;
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(m_Price[m_Sort[i]]>m_Price[m_Sort[j]])
{
Temp=m_Sort[i];
m_Sort[i]=m_Sort[j];
m_Sort[j]=Temp;
}
}
}
}
int main(void)
{
int i,Price,Index=0;
char IsContinue;
Goods Des;
int* Result;
cout<<"--------------价格竞猜--------------"<<endl<<endl;
cout<<"现在开始(Y/N)?";
cin>>IsContinue;
if(IsContinue=='Y' || IsContinue=='y')
{
srand(time(NULL));
for(i=0;i<10;i++)
{
Des.SetPrice(rand(),i);
}
cout<<"请选择竞猜商品序号(1-10)?";
cin>>Index;
Index-=1;
if(Index<0) Index=0;
else Index%=10;
cout<<"从"<<Index+1<<"号商品开始"<<endl;
}
i=0;
while(IsContinue=='Y' || IsContinue=='y')
{
cout<<endl<<"请为"<<Index+1<<"号商品出价:";
cin>>Price;
Price=Des.Guess(Price,Index);
if(Price<0)
{
cout<<Index+1<<"号商品竞猜失败.商品正确价格是"<<Des.GetPrice(Index)<<endl;
i++;
if(i<10)
{
Index=(Index+1)%10;
cout<<"是否继续(Y/N)?";
cin>>IsContinue;
if(IsContinue=='Y' || IsContinue=='y') cout<<"开始的下一商品."<<endl;
}
else
{
cout<<"没有商品供竞猜."<<endl;
break;
}
}
else if(Price==2)
{
cout<<"高了."<<endl;
continue;
}
else if(Price==1)
{
cout<<"低了."<<endl;
continue;
}
else
{
cout<<"正中目标."<<endl;
break;
}
}
Result=Des.GetSort();
Des.Sort();
for(i=0;i<10;i++)
{
cout<<Result[i]+1<<"号商品价值:"<<Des.GetPrice(Result[i])<<endl;
}
cout<<"游戏结束."<<endl;
cin>>i;
return 0;
}
河工大?
第3个回答 2010-06-23
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int key;
int i,j;
int temp;
int choice;
int price[10]={25,100,75,26,52,44,52,35,12,98};
int stop=0;
int min;
do{
printf("请输入要猜的商品序号(1~10):\n");
scanf("%d",&choice);
key=price[choice-1];
for(i=0;i<10;i++)
{
printf("请输入猜测的数:\n");
scanf("%d",&temp);
if(key==temp)
{
printf("Right!\n");
printf("你猜了%d次就猜对了\n",i+1);
break;
}
if(key<temp)
{
printf("Wrong!\n猜大了!\n");
}
if(key>temp)
{
printf("Wrong!\n猜小了!\n");
}
}
printf("是否进行下一次竞猜?输入1继续,输入0退出!\n");
scanf("%d",&stop);
}while(stop==1);
printf("\n\n所有商品的情况如下:\n");
min=50000;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(price[j]<min)
{
min=price[j];
temp=j;
}
}
printf("%d号商品的价格为:%d\n",temp+1,min);
price[temp]=50000;
min=50000;
}
return 0;
}
price数组用来存储商品价格的,可以修改数组大小来改变商品数量,修改数组内容来改变商品价格。
第4个回答 2020-04-17
我的心里都是你,
⑧② ⑥ ③ ⑧ ⑤ · 匚 ō г n
一颦一笑,或者百般模样。