//物品打折,全部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; }
朕日理万机