首先,那个scanf里面要用&,楼主输错了。
再有,那个转义符号\n是不是写错了?
最后,printf时,那个&x,楼主是想输出什么?是x的值还是x的存放地址?
楼主改:scanf("%d,%d,%d",&a,&b,&x);改:printf("%d\n",x);就没有问题,如果输入2,0,4,则输出3;如果printf("%d\n",&x);不改,我初次运行为-38,这应该是内存地址,每次运行应该都不同。
你的求回文素数的C语言程序,我帮你改完了,你看看吧(改动的地方见注释)
#include<stdioh>int main()
{
int i,j,c=1,result,n=1,v,h,b,l,a[100000]={0};
scanf("%d%d",&h,&b);
if(h>=5 && h<=b && b<=100000)//这里把||改成&&
{
for(h;h<=b;h++)
{
l=h;
n=1;//这里加一句,保证每个数h,n都初始化为1
for(i=2;i<=l-1;i++)
{
result=l%i;
if(result==0)
{
n=0;
break;
}
}
if(n==1)
{
c=1;//这里加一句,保证每个n==1的数h,c都初始化为1
i=0;//这里把for-i循环改成while-i循环
while(l!=0)
{
a[i]=l%10;
l=l/10;
i++;
}
v=i-1;
for(j=0,v;j<v;j++,v--)//这里把j!=v;改成j<v;
{
if(a[j]!=a[v]) c=0;
}
if(c==1) printf("%d\n",h);
}
}
}
return 0;
}
原因就是你的输入函数写的有问题,你的格式控制列表是这样写的:"a=%f,b=%f,c=%f\n",把后面的字符'\n'去掉就可以了,这样程序就能正常运行了。否则无论输入多少个'\n'(回车都不好使的),因为scanf函数输入的时候会自动忽略换行符,但是你的格式控制列表中却要求必须输入一个换行。所以会出现问题,至于为什么输入别的字符就可以了,应该是输入了其他字符后scanf函数就直接返回了(但不是返回出错)。
这个和PLC里边的程序有关系。
一般自动程序,会有很多的安全及条件判断。
自动程序无输出,估计是你的设备有些条件没有达到自动要求。
所认在自动状态下,程序屏蔽了输出功能。
如果你在你的程序结束的地方加个输入语句,或者加上头文件#include<stdlibh>,然后程序结束的地方加上system("pause");语句,程序执行完就不会立刻退出,可以看到结果。
另外,你可以在cmd中运行你的程序,不需要修改就可以看到结果。按Win(就是windows徽标那个键)+R打开运行,然后输入cmd,回车,打开了cmd窗口,把你的程序拖到cmd窗口里,回车运行就可以了
以上就是关于想知道程序哪里出问题了,为什么没有输出全部的内容,包括:想知道程序哪里出问题了,为什么没有输出、为什么程序没有输出啊啊啊啊啊。执行框输入以后就没有输出。。、c语言程序运行后没有输出结果只有光标向下移动了,如果再随便输入一些数字再Enter建就出结果,为什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)