//物品打折,全部8.5折,且單品滿500的有禮品相送。
//現在要統計打折后的價格,并保存打完折后單品價格仍然大于500的單品的價格。
#include"stdio.h"
#define?N?6
?int??discount(float?*p,float?*g)
?{
? int?i,j=0;
? for(i=0;i<N;i++)
? {
? *(p+i)*=0.85;
? printf("%.1f?",*(p+i));
? ????if(*(p+i)>500)
? ????{
? ???? g[j++]=*(p+i);
}
}
return?j;
?}
?int?main()
?{
? int?i,j;
float?g[6];
? float?a[N]={238.0,958.0,1050.0,599.0,799.0,198.0};
? printf("打折前的價格分別是:");
? ?for(i=0;i<N;i++)
? ?{
? printf("%.1f???",*(a+i));
?}
?printf("\n打折后輸出的結果是:");
?j=discount(a,g);
?printf("判斷一下g的長度%d",j);
?????putchar('\n');
?for(i=0;i<N;i++)
?{
? printf("%.1f???",*(a+i));//再輸出一次
?}
?printf("\n打折后仍然超過500的:");
?for(i=0;i<discount(a,g);i++)//這個地方如果把discount(a,g)改為j,結果就不會出錯,但數值上不是一樣的嗎?
?{??????????????????????????????????????????????//請問一下這是為什么呢?
? printf("%.1f???",*(g+i));
?}
?putchar('\n');
?return?0;
?}
for循環中如果判斷條件為函數的返回值,就會出錯,請教下大神該怎么解決?
慕粉1600176492
2016-12-13 18:05:21