user-0 提问: 输入一个数字，精确小数点后一位，输出若干个5，若干个1.若干个0.5，若干个0.1

回复:
user: user-0
content: 引用 12 楼 nice_cxf 的回复：重新排了下版，还有一个错误，应该是>=10  #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { 	char buf[32]; 	int value1,value2;  	scanf("%s", buf); 	sscanf(buf,"%d.%d",&value1,&value2); 	while (value2>=10) 	   value2/=10; 	printf("你输入的数字是%d.%d\n", value1,value2); 	printf("\n"); 	printf("一共有%d个5", (int)value1 / 5); 	printf("\n"); 	printf("一共有%d个1", (int)value1 % 5); 	printf("\n"); 	printf("一共有%d个0.5", (int)value2 / 5); 	printf("\n"); 	printf("一共有%d个0.1", (int)value2 % 5); 	printf("\n"); }  就是您这个能帮我做到四舍五入吗，然后精确一位就可以了，我刚才改了一下有输出了

user: user-0
content: 是不是缺少输出呀

user: user-0
content: 您好，程序是没问题，调试的时候，输入一个数完，就跳出主界面了，这是什么问题？？

user: user-1
content: 重新排了下版，还有一个错误，应该是>=10  #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { 	char buf[32]; 	int value1,value2;  	scanf("%s", buf); 	sscanf(buf,"%d.%d",&value1,&value2); 	while (value2>=10) 	   value2/=10; 	printf("你输入的数字是%d.%d\n", value1,value2); 	printf("\n"); 	printf("一共有%d个5", (int)value1 / 5); 	printf("\n"); 	printf("一共有%d个1", (int)value1 % 5); 	printf("\n"); 	printf("一共有%d个0.5", (int)value2 / 5); 	printf("\n"); 	printf("一共有%d个0.1", (int)value2 % 5); 	printf("\n"); }

user: user-1
content: 不要用浮点，会有精度误差，按字符串读进来   #define _CRT_SECURE_NO_WARNINGS #include <stdio.h>  int main(void) { char buf[32]; int value1,value2;  scanf("%s", buf); sscanf(buf,"%d.%d",&value1,&value2); while (value2>10)    value2/=10; printf("你输入的数字是%d.%d\n", value1,value2); printf("\n"); printf("一共有%d个5", (int)value1 / 5); printf("\n"); printf("一共有%d个1", (int)value1 % 5); printf("\n"); printf("一共有%d个0.5", (int)value2 / 5); printf("\n"); printf("一共有%d个0.1", (int)value2 % 5); printf("\n"); return 0; }

user: user-0
content: 不好意思哦，语文高考没及格！

user: user-2
content: 语文表述太差了吧，你的题目哪里有表达这意思？ 引用 6 楼 Valiant_Z 的回复:[quote=引用 5 楼 轻箬笠 的回复：]还要四舍五入啊。 #include <Windows.h> #include <stdio.h>  int aa(float a) { 	int c = (int)a; 	float d = a - (float)c; 	printf("一共有%d个0.5\n", (int)(d * 10 + 0.5) / 5); 	printf("一共有%d个0.1\n", (int)(d * 10 + 0.5)); 	system("pause"); 	return 0; }  int main() { 	float a;  	scanf("%f", &a); 	printf("你输入的数字是%.1f\n", a); 	printf("\n"); 	printf("一共有%d个5", (int)(a + 0.5) / 5); 	printf("\n"); 	printf("一共有%d个1", (int)(a + 0.5)); 	printf("\n"); 	return aa(a);  }真的不好意思，我以为你理解我的意思，那个他分出来这四个数之和要是你精确的数，你好像只是满足了我要多少个5，多少个1，多少个0.5，多少个0.1，真的麻烦你了 [/quote]

user: user-0
content: 引用 7 楼 轻箬笠 的回复：你是想拆分这个输入的数字，然后可以拼凑回原来的数？是的

user: user-3
content: 你是想拆分这个输入的数字，然后可以拼凑回原来的数？

user: user-0
content: 引用 5 楼 轻箬笠 的回复：还要四舍五入啊。 #include <Windows.h> #include <stdio.h>  int aa(float a) { 	int c = (int)a; 	float d = a - (float)c; 	printf("一共有%d个0.5\n", (int)(d * 10 + 0.5) / 5); 	printf("一共有%d个0.1\n", (int)(d * 10 + 0.5)); 	system("pause"); 	return 0; }  int main() { 	float a;  	scanf("%f", &a); 	printf("你输入的数字是%.1f\n", a); 	printf("\n"); 	printf("一共有%d个5", (int)(a + 0.5) / 5); 	printf("\n"); 	printf("一共有%d个1", (int)(a + 0.5)); 	printf("\n"); 	return aa(a);  }真的不好意思，我以为你理解我的意思，那个他分出来这四个数之和要是你精确的数，你好像只是满足了我要多少个5，多少个1，多少个0.5，多少个0.1，真的麻烦你了

user: user-3
content: 还要四舍五入啊。 #include <Windows.h> #include <stdio.h>  int aa(float a) { 	int c = (int)a; 	float d = a - (float)c; 	printf("一共有%d个0.5\n", (int)(d * 10 + 0.5) / 5); 	printf("一共有%d个0.1\n", (int)(d * 10 + 0.5)); 	system("pause"); 	return 0; }  int main() { 	float a;  	scanf("%f", &a); 	printf("你输入的数字是%.1f\n", a); 	printf("\n"); 	printf("一共有%d个5", (int)(a + 0.5) / 5); 	printf("\n"); 	printf("一共有%d个1", (int)(a + 0.5)); 	printf("\n"); 	return aa(a);  }

user: user-0
content: 引用 3 楼 轻箬笠 的回复：#include <Windows.h> #include <stdio.h>  int aa(float a) { 	int c = (int)a; 	float d = a - (float)c; 	printf("一共有%d个0.5\n", (int)(d * 10) / 5); 	printf("一共有%d个0.1\n", (int)(d * 10)); 	system("pause"); 	return 0; }  int main() { 	float a;  	scanf("%f", &a); 	printf("你输入的数字是%.1f\n", a); 	printf("\n"); 	printf("一共有%d个5", (int)a / 5); 	printf("\n"); 	printf("一共有%d个1", (int)a); 	printf("\n"); 	return aa(a);  }这里面没有四舍五入吗，可能我要输入的是有多位小数的，不好意思，我没说清楚

user: user-3
content: #include <Windows.h> #include <stdio.h>  int aa(float a) { 	int c = (int)a; 	float d = a - (float)c; 	printf("一共有%d个0.5\n", (int)(d * 10) / 5); 	printf("一共有%d个0.1\n", (int)(d * 10)); 	system("pause"); 	return 0; }  int main() { 	float a;  	scanf("%f", &a); 	printf("你输入的数字是%.1f\n", a); 	printf("\n"); 	printf("一共有%d个5", (int)a / 5); 	printf("\n"); 	printf("一共有%d个1", (int)a); 	printf("\n"); 	return aa(a);  }

user: user-0
content: 引用 1 楼 轻箬笠 的回复：你的测试输入是啥？就是输入一个20以内的数就可以了

user: user-3
content: 你的测试输入是啥？