main()
{
int a[3],i,sum;
for(sum=1000;sum<=9999;sum++) /*分解4位数将每一位传个数组中的一个元素*/
{
for(i=0;i<4;i++)
{
a[i]=sum%10;
sum/=10;
}
}
if(sum*a[0]==1000*a[0]+100*a[2]+10*a[1]+a[3])
{
for(i=0;i<=3;i++)
printf("%d ",a[i]);
}
getch();
}
为什么我编译成功了 在运行结果里看不到结果 只有1个光标闪动 是不是逻辑出现错误了 ???谢谢请解答下
----------------解决方案--------------------------------------------------------
你看看你的a[0]的在上面的for循环中的值是多少啊
----------------解决方案--------------------------------------------------------
声明int a[3]只有三个元素,a[0],a[1],a[2]. 没有a[3]的.
第一个for没起作用吧. 不知道你想完成什么功能.
----------------解决方案--------------------------------------------------------
#include <stdio.h>
main()
{
int a[3],i,sum,j,sum_r;
for(sum=1000;sum<=9999;sum++) /*分解4位数将每一位传个数组中的一个元素*/
{
sum_r = sum;
for(i=0;i<4;i++)
{
a[i]=sum_r%10;
sum_r/=10;
}
if(sum*a[0]==1000*a[0]+100*a[2]+10*a[1]+a[3])
{
for(j=0;j<=3;j++)
printf("%d ",a[j]);
puts("");
}
}
getch();
}
你要的是不是这个
[此贴子已经被作者于2007-1-29 15:57:40编辑过]
----------------解决方案--------------------------------------------------------
4楼的 可以编译 但是于我预想的答案不对
我是想要计算这个 abcd*d=dbca 式子 能帮我改改吗?
还有为什么你那样改了后就出现结果了呢? 我原来的代码是哪里错了啊?
----------------解决方案--------------------------------------------------------
#include <stdio.h>
main()
{
int a[3],i,sum;
for(sum=1000;sum<=9999;sum++) /*分解4位数将每一位传个数组中的一个元素*/
{
for(i=0;i<4;i++)
{
a[i]=sum%10;
sum/=10; /* 看起来是个死循环,sum/=10等于100 10 最后等于1 然后再sum++ */
}
}
if(sum*a[0]==1000*a[0]+100*a[2]+10*a[1]+a[3])
{
for(i=0;i<=3;i++)
printf("%d ",a[i]);
}
getch();
}
为什么我编译成功了 在运行结果里看不到结果 只有1个光标闪动 是不是逻辑出现错误了 ???谢谢请解答下
[此贴子已经被作者于2007-1-29 22:46:00编辑过]
----------------解决方案--------------------------------------------------------
程序修改后,输出没有结果,因为没有能满足你要求的那个数。
#include <stdio.h>
int main()
{
int a[4],i,sum,temp;
for(sum = 1001; sum <= 9999; sum++) /*分解4位数将每一位传给数组中的一个元素*/
{
temp = sum;
for(i = 0; i < 4; i++)
{
a[i] = temp % 10;
temp /= 10;
}
}
if(sum * a[0] == 1000 * a[0] + 100 * a[2] + 10 * a[1] + a[3])
{
for(i = 0;i < 4; i++)
printf("%d ",a[i]);
}
getch();
return 0;
}
----------------解决方案--------------------------------------------------------
程序修改后,输出没有结果,因为没有能满足你要求的那个数。
#include <stdio.h>
int main()
{
int a[4],i,sum,temp;
for(sum = 1001; sum <= 9999; sum++) /*分解4位数将每一位传给数组中的一个元素*/
{
temp = sum;
for(i = 0; i < 4; i++)
{
a[i] = temp % 10;
temp /= 10;
}
}
if(sum * a[0] == 1000 * a[0] + 100 * a[2] + 10 * a[1] + a[3])
{
for(i = 0;i < 4; i++)
printf("%d ",a[i]);
}
getch();
return 0;
}
这个好象没有赋初值吧,怎么可能和后面相等呀?
还请楼主把题目的意思说清楚些!
----------------解决方案--------------------------------------------------------
呵呵,是俺错了。改正后的程序如下:
#include <stdio.h>
int main()
{
int a[4],i,sum,temp;
for(sum = 1001; sum <= 9999; sum++) /*分解4位数将每一位传给数组中的一个元素*/
{
temp = sum;
for(i = 0; i < 4; i++)
{
a[i] = temp % 10;
temp /= 10;
}
if(sum * a[0] == 1000 * a[0] + 100 * a[2] + 10 * a[1] + a[3])
{
for(i = 0;i < 4; i++)
printf("%d ",a[i]);
printf("\t"); /* 为了便于好看,将它们分隔开 */
}
}
getch();
return 0;
}
[此贴子已经被作者于2007-1-30 16:21:58编辑过]
----------------解决方案--------------------------------------------------------
谢谢 已解决
for(sum = 1001; sum <= 9999; sum++)
{
temp = sum;
for(i = 0; i < 4; i++)
{
a[i] = temp % 10;
temp /= 10;
}
temp = sum;为什么这句要放在for句型的外面呢?这里还是有点不懂~
----------------解决方案--------------------------------------------------------