我正在尝试标记将对应于int Min&最大数量,例如:
Serial No. Min/Max
1 Min
2
3
4
5 Max
在控制台上,其他列正在按照我的要求打印,但无法获得此";"最小/最大";列打印如上。
我对此部分的代码如下:
int max = userArray[0];
int min = userArray[0];
for(i=1; i<=10; i++){
//excluded codes to print other columns
//code for my concerned column print
if(userArray[i]>max){
max = userArray[i];
}
if(userArray[i]==max){
printf("%49sn","Max");
}
if(min > userArray[i]){
min = userArray[i];
}
if(userArray[i]==min){
printf("%49sn","Min");
}
}
在打印其他列时,无法找到并打印最小值和最大值。仅仅是因为在你看了所有元素之后,你才知道最小值和最大值是什么。
在开始打印循环之前,您需要找到最小值和最大值。所以你需要一个额外的循环。
// Find index of min and max values
int max_idx = 0;
int min_idx = 0;
int max = userArray[max_idx];
int min = userArray[min_idx];
for(int i=0; i<10; i++)
{
if (userArray[i]>max)
{
max_idx = i;
max = userArray[max_idx];
}
else if (userArray[i] < min)
{
min_idx = i;
min = userArray[min_idx];
}
}
// Now do the print
for(i=0; i<10; i++)
{
//excluded codes to print other columns
if(i == max_index && i == min_index)
{
printf("%49sn","Min/Max");
}
else if(i == max_index)
{
printf("%49sn","Max");
}
else if(i == min_index){
printf("%49sn","Min");
}
}
请注意,使用min_index
和max_index
可确保例如,即使最大值出现多次,也只打印一次Max。
在打印min
或max
之前,您需要完成一次循环,以识别min
和max
的值。
int main()
{
int userArray[10] = {3, 2, 1, 4, 6, 5, 7, 8, 10, 9};
int max = userArray[0];
int min = userArray[0];
for(int i=0; i<10; i++){
//excluded codes to print other columns
//code for my concerned column print
if(userArray[i]>max){
max = userArray[i];
}
if(userArray[i] < min){
min = userArray[i];
}
}
printf("Serial No.tMin/Maxn");
for(int i=0;i<10;i++)
{
printf("%dt", userArray[i]);
if(userArray[i] == min)
printf("tMin");
if(userArray[i] == max)
printf("tMax");
printf("n");
}
printf("n");
return 0;
}
打印所需的列
Serial No. Min/Max
3
2
1 Min
4
6
5
7
8
10 Max
9