C语言运行程序显示为什么有乱码?
#include<stdio.h>#include"math.h"intsearchDiv(intn)//求n的约数个数{intcount=2,j;//count=2(1...
#include<stdio.h>
#include"math.h"
int searchDiv(int n)//求n的约数个数
{
int count=2,j;//count=2(1和本身是自己的约数)
if(n<2) return 1;
for(j=2;j<=n/2;j++)//只用判断到n/2
if(n%j==0)
count++;
return count;
}
int foundMaxdiv(int a,int b)
{
int max=0;
int i;
for(i=a;i<=b;i++)
{ if(max<searchDiv(i))
max=searchDiv(i);
}
return max;
}
void main()
{
int a,b,num;
printf("请输入两个数a和b:%d,%d\n",a,b);
scanf("%d,%d",&a,&b);
num=foundMaxdiv(a,b);//调用函数
printf("a和b之间约数个数最多的数为:%d\n",num);
} 展开
#include"math.h"
int searchDiv(int n)//求n的约数个数
{
int count=2,j;//count=2(1和本身是自己的约数)
if(n<2) return 1;
for(j=2;j<=n/2;j++)//只用判断到n/2
if(n%j==0)
count++;
return count;
}
int foundMaxdiv(int a,int b)
{
int max=0;
int i;
for(i=a;i<=b;i++)
{ if(max<searchDiv(i))
max=searchDiv(i);
}
return max;
}
void main()
{
int a,b,num;
printf("请输入两个数a和b:%d,%d\n",a,b);
scanf("%d,%d",&a,&b);
num=foundMaxdiv(a,b);//调用函数
printf("a和b之间约数个数最多的数为:%d\n",num);
} 展开
12个回答
展开全部
提示语句printf("请输入两个数a和b:%d,%d\n",a,b);中的输出变量a、b还没有赋值造成了输出垃圾值的错误。把这句提示改为printf("请输入两个数a和b:\n");就解决了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编码问题,有的编码不支持中文,在编写时更改下源文件的编码即可,一般都是UTF-8编码。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为 a 和 b 没有赋值,所以取得的 是内存中的垃圾值,还有这个一般不称为乱码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的a,b还没有初始化所以里边存的是最小值
还有 ,,你的printf改成这样
printf("请输入两个数a和b\n");
因为这只是一句提示的话 提示接下来输入什么
还有 ,,你的printf改成这样
printf("请输入两个数a和b\n");
因为这只是一句提示的话 提示接下来输入什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询