3. 该å½æ°æ sum å é±åæ 100 å ã50 å ã10 å ã5 å ã1 å ã0.1 å ã0.05 å ï¼å°åé±ç»ææ¾å ¥ buf ä¸ï¼å¹¶å¨æåå å ¥ 0 表示åé±ç»æã
*/
void splitmoney(float * buf, float sum) { int n = 0; while ((int)(sum / 100) != 0) { buf[n] = 100.0; sum -= 100; n += 1; } while ((int)(sum / 50) != 0) { buf[n] = 50.0; sum -= 50; n += 1; } while ((int)(sum / 10) != 0) { buf[n] = 10.0; sum -= 10; n += 1; } while ((int)(sum / 5) != 0) { buf[n] = 5.0; sum -= 5; n += 1; } while ((int)(sum / 1) != 0) { buf[n] = 1.0; sum -= 1; n += 1; } while ((int)(sum / 0.1) != 0) { buf[n] = 0.1; sum -= 0.1; n += 1; } while ((int)(sum / 0.05) != 0) { buf[n] = 0.05; sum -= 0.05; n += 1; } buf[n] = 0; }
/* è¾åºåé±ç»æè¦åä¸é¢è¿æ ·è¾åº */
#include <stdio.h>
int main() { float arr[256] = {0.0}; int i = 0; splitmoney(arr, 297.1501); while (arr[i] != 0) { printf("%f\n", arr[i]); i += 1; } return 0; }