我試圖列印在陣列中輸入的最大值,但它一直給我輸入的最后一個值,即使它不是輸入的最大值。
這是練習說明:
使用指標確定五個型別化雙精度陣列的最大值。將一個指標應用于陣列元素,將另一個指標應用于保存最大值的輔助變數。
這是我到目前為止所做的..
#include <stdio.h>
#include <stdlib.h>
#define array_double 5
int main() {
double m[array_double];
int c;
double *pArray;
double *pMax = 0;
printf("\nType values:\n");
for(c = 0; c < array_double; c )
{
scanf("%lf", &m[c]);
}
pArray = m;
for(c = 0; c < array_double; c )
{
if(pArray>pMax)
{
pMax = pArray;
}
pArray ;
}
printf("\nMax value: %.2lf", *pMax);
return 0;
}
uj5u.com熱心網友回復:
您比較的是指標而不是內容。比較值的正確方法是取消參考指標,例如
if (*pArray > *pMax) {
...
}
但是,對于這個作業,你必須初始化指標pMax太
pMax = m;
uj5u.com熱心網友回復:
以下修改后的程式產生輸出,
#include <stdio.h>
#include <stdlib.h>
#define array_double 5
int main() {
double m[array_double];
int c;
double *pArray;
double *pMax = m;
printf("\nType values:\n");
for(c = 0; c < array_double; c )
{
scanf("%lf", &m[c]);
}
pArray = m;
for(c = 0; c < array_double; c )
{
if(*pArray>*pMax)
{
pMax = pArray;
}
pArray ;
}
printf("\nMax value: %.2lf", *pMax);
return 0;
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/384328.html
