C语言纠错,高手请进

来源:百度知道 编辑:UC知道 时间:2024/05/21 11:01:25
#include <conio.h> /* 此头函数请不要删除 */

main()
{float j,g,h,i;
int a,b,c,d,e,f,num;
printf("请输入一指定金额:");
scanf("%f",&j);
a=num/100;
b=num%100/50;
c=num%50/10;
d=num%10/5;
e=num%5/2;
f=num%2;
g=j/0.1%10;
h=j/0.01%10/5;
i=j/0.01%5;
printf("需要100元%d张\n",a);
printf("需要50元%d张\n",b);
printf("需要10元%d张\n",c);
printf("需要5元%d张\n",d);
printf("需要2元%d张\n",e);
printf("需要1元%d张\n",f);
printf("需要1角%d张\n",g);
printf("需要5分%d张\n",h);
printf("需要1分%d张\n",i);
getch(); /* 此语句请不要删除*/
}

有很多错误和警告,如下
警告? temp.c 8: 可能在'num'定义以前使用了它 在函数
警告? temp.c 9: 可能在'num'定义以前使用了它 在函数
警告? temp.c 10: 可能在'num'定义以前使用了它 在函数
警告? temp.c 11: 可能在'num'定义以前使用了它

你的num没有赋值,才出现前六个警告
% 这个符号两边的操作数只能是整数.
#include <conio.h> /* 此头函数请不要删除 */

main()
{float j,g,h,i;
int a,b,c,d,e,f,num;
printf("请输入一指定金额:");
scanf("%f",&j);
num=2;
a=num/100;
b=num%100/50;
c=num%50/10;
d=num%10/5;
e=num%5/2;
f=num%2;
g=(int)(j/0.1)%10;
h=(int)(j/0.01)%10/5;
i=(int)(j/0.01)%5;
printf("需要100元%d张\n",a);
printf("需要50元%d张\n",b);
printf("需要10元%d张\n",c);
printf("需要5元%d张\n",d);
printf("需要2元%d张\n",e);
printf("需要1元%d张\n",f);
printf("需要1角%d张\n",g);
printf("需要5分%d张\n",h);
printf("需要1分%d张\n",i);
getch(); /* 此语句请不要删除*/
}

num没有赋初值你就使用了,float数不能%取模