私は入力を求め、配列(number [i])の中に入れて3つの異なる単位に変換する簡単なプログラムを作っています。それを別のユニットに変換した後、ユーザが与えた最低と最高の数字を表示できる必要があります。ユーザ入力から来る配列の最小値と最大値を表示する
dowhileループを使用してユーザーからの入力を受け取りました。do while loop
の後に、数字[i]配列内の入力から最小値と最大値を計算するfor loop
を入れました。しかし、2つの入力を入れた後、プログラムは私に最も高い数字を示し、最も低い数字は私に0
を示しています。
これは次のようなものです。
do{
clrscr();
cout<<"Enter a number:";
cin>>number[i];
cout<<"\nPlease choose a unit";
cout<<"\n<A> meter";
cout<<"\n<B> centimeter";
cout<<"\n<C> inch";
cout<<"\n<D> feet";
cout<<"\nPlease enter your chosen unit: ";
cin>>unit;
switch(unit)
{
case 'a':
case 'A':
i=0;
m = number[i] * 1;
cm = 1000 * m;
in = m/0.0254;
ft = m/0.3048;
cout<<"\nYou have chosen meter for unit";
cout<<"\nYou have entered "<<number[i]<<" meters";
cout<<"\n"<<m<<" meters is equal to\n"<<cm<<" centimeters";
cout<<"\n"<<in<<" inches";
cout<<"\n"<<ft<<" feet";
cout<<"\n\nDo you want to input another value? y/n:";
cin>>y;
if(y=='y')
{
x=1;
}
else if(y=='n')
{
x=0;
}
break;
case 'b':
case 'B':
cm = number[i] * 1;
m = cm /1000;
in = cm * 0.393701;
ft = cm * 0.0328084;
cout<<"\nYou have chosen centimeter for unit";
cout<<"\nYou have entered "<<number[i]<<" centimeters";
cout<<"\n"<<cm<<" centimeters is equal to\n"<<m<<" meters";
cout<<"\n"<<in<<" inches";
cout<<"\n"<<ft<<" feet";
cout<<"\n\nDo you want to input another value? y/n:";
cin>>y;
if(y=='y')
{
x=1;
}
else if(y=='n')
{
x=0;
break;
}
break;
case 'c':
case 'C':
in = number[i] * 1;
m = in * 0.0254;
cm = in * 2.54;
ft = in * 0.0833333;
cout<<"\nYou have chosen inches for unit";
cout<<"\nYou have entered "<<number[i]<<" inches";
cout<<"\n"<<in<<" inches is equal to\n"<<m<<" meters";
cout<<"\n"<<cm<<" centimeters";
cout<<"\n"<<ft<<" feet";
cout<<"\n\nDo you want to input another value? y/n:";
cin>>y;
if(y=='y')
{
x=1;
}
else if(y=='n')
{
x=0;
}
break;
case 'd':
case 'D':
ft = number[i] * 1;
m = ft*0.3048;
in = ft*12;
cm = ft * 30.48;
cout<<"\nYou have chosen feet for unit";
cout<<"\nYou have entered "<<number[i]<<" feet";
cout<<"\n"<<ft<<" feet is equal to\n"<<m<<" meters";
cout<<"\n"<<cm<<" centimeters";
cout<<"\n"<<in<<" inches";
cout<<"\n\nDo you want to input another value? y/n:";
cin>>y;
if(y=='y')
{
x=1;
}
else if(y=='n')
{
x=0;
}
break;
default:
cout<<"\nYou have entered an invalid choice!";
x=1;
break;
}
}while(x==1);
for(i=0; i<sizeof(number)/sizeof(*number);i++)
{
if(mn>number[i])
{
mn=number[i];
}
else if (mx<number[i])
mx= number[i];
}
cout<<"\nHighest number is : "<<mx;
cout<<"\nLowest number is: "<<mn;
コメントは議論の対象外です。この会話は[チャットに移動]されています(http://chat.stackoverflow.com/rooms/130032/discussion-on-question-by-james-bong-show-min-and-max-values-of-array-それはそうです)。 – deceze