| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 952 人关注过本帖
标题:[求助]显示不出结果 为什么?
只看楼主 加入收藏
xzdblue
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-1-25
收藏
 问题点数:0 回复次数:10 
[求助]显示不出结果 为什么?
#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;
}
}
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个光标闪动 是不是逻辑出现错误了 ???谢谢请解答下
搜索更多相关主题的帖子: 结果 int main getch 
2007-01-29 14:26
anndy_ht
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-1-17
收藏
得分:0 
你看看你的a[0]的在上面的for循环中的值是多少啊
2007-01-29 15:08
atomhdp
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2005-10-2
收藏
得分:0 
声明int a[3]只有三个元素,a[0],a[1],a[2]. 没有a[3]的.
第一个for没起作用吧. 不知道你想完成什么功能.

2007-01-29 15:10
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

#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编辑过]

2007-01-29 15:16
xzdblue
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-1-25
收藏
得分:0 

4楼的 可以编译 但是于我预想的答案不对
我是想要计算这个 abcd*d=dbca 式子 能帮我改改吗?
还有为什么你那样改了后就出现结果了呢? 我原来的代码是哪里错了啊?

2007-01-29 16:48
slong
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-11-9
收藏
得分:0 
以下是引用xzdblue在2007-1-29 14:26:18的发言:
#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编辑过]

2007-01-29 22:43
hiaod
Rank: 1
等 级:新手上路
威 望:1
帖 子:66
专家分:0
注 册:2007-1-25
收藏
得分: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;
}

2007-01-30 01:52
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
以下是引用hiaod在2007-1-30 1:52:13的发言:

程序修改后,输出没有结果,因为没有能满足你要求的那个数。

#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;
}
这个好象没有赋初值吧,怎么可能和后面相等呀?
还请楼主把题目的意思说清楚些!


~~我的明天我知道~~
2007-01-30 02:09
hiaod
Rank: 1
等 级:新手上路
威 望:1
帖 子:66
专家分:0
注 册:2007-1-25
收藏
得分: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编辑过]

2007-01-30 16:16
xzdblue
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-1-25
收藏
得分:0 

谢谢 已解决

for(sum = 1001; sum <= 9999; sum++)
{
temp = sum;
for(i = 0; i < 4; i++)
{
a[i] = temp % 10;
temp /= 10;
}

temp = sum;为什么这句要放在for句型的外面呢?这里还是有点不懂~

2007-01-31 16:16
快速回复:[求助]显示不出结果 为什么?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028779 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved