| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 815 人关注过本帖
标题:以下程序有什么问题吗?
只看楼主 加入收藏
cabin0120
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-9-6
结帖率:0
收藏
 问题点数:0 回复次数:10 
以下程序有什么问题吗?

把1到1000以内的所有能被7或者11整除,但是不能同时被7和11整除的数,储存到指针a所指向的数组中,主函数里的内容不用去管它.
运行时能把大部分数输出,但是不完全是,不仔细看还看不出来。。
#include <conio.h>
#include <stdio.h>

void fun(int *a,int *n)
{ int i,j=0;
for(i=11;i<1000;i++)
if(i%11==0||i%7==0)?/*找出能被7或者11整除的数*/
{if(i%11==0&&i%7==0) continue;/*如果能同时被7和11整除则跳过*/
else a[j++]=i;/*反之则把数存如数组a*/
}
*n=j;/*返回这些数的个数*/
}

main()
{
FILE *out;
int aa[1000],n,k;
clrscr();
fun(aa,&n);
for(k=0;k<n;k++)
if((k+1)%10==0)
printf("\n");
else printf("%5d,",aa[k]);

out=fopen ("out.dat", "w");
for(k=0;k<n;k++)
if((k+1)%10==0)
fprintf(out, "\n");
else fprintf(out, "%5d,",aa[k]);
fclose (out );
getch();
}

搜索更多相关主题的帖子: continue include 
2007-03-17 18:23
e4lich
Rank: 2
等 级:新手上路
威 望:4
帖 子:182
专家分:0
注 册:2006-10-26
收藏
得分:0 

请问有那些没有啊,我看不出来啊!


我只想变强!     
2007-03-17 18:57
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
对一些函数还不是很了解   

   好好活着,因为我们会死很久!!!
2007-03-17 20:28
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
以下是引用cabin0120在2007-3-17 18:23:08的发言:


#include <conio.h>
#include <stdio.h>

void fun(int *a,int *n)
{ int i,j=0;
for(i=1;i<1000;i++) /*初值为11,你这样把7丢了,改为1*/
if(i%11==0||i%7==0)/*找出能被7或者11整除的数*/
{if(i%11==0&&i%7==0) continue;/*如果能同时被7和11整除则跳过*/
else a[j++]=i;/*反之则把数存如数组a*/
}
*n=j;/*返回这些数的个数*/
}

main()
{
FILE *out;
int aa[1000],n,k;
clrscr();
fun(aa,&n);
for(k=0;k<n;k++)
{ /*这个大括号不能省*/
if((k+1)%10==0)
printf("\n");
/*else*/ printf("%5d,",aa[k]); /*这个else是个大肚子,每10个数它就吃1个,去掉*/
}
out=fopen ("out.dat", "w");
for(k=0;k<n;k++)
if((k+1)%10==0)
fprintf(out, "\n");
else fprintf(out, "%5d,",aa[k]);
fclose (out );
getch();
}

这下试试应该是OK了

[此贴子已经被作者于2007-3-17 21:33:32编辑过]


“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2007-03-17 20:57
cabin0120
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-9-6
收藏
得分:0 

题目规定主函数是不能变的

2007-03-18 16:39
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

我看下

[此贴子已经被作者于2007-3-18 16:50:29编辑过]


雁无留踪之意,水无取影之心
2007-03-18 16:49
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
有一种方法你试试

你想个办法将所有能被7整除的数并且能并11整除的数正好是数组中的第N个数(N是10的陪数)
这个应该好想,我就不做了

[此贴子已经被作者于2007-3-20 13:06:15编辑过]


雁无留踪之意,水无取影之心
2007-03-18 16:58
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
呵呵!没看懂什么意思,楼上说的10应该是11吧!

该学习了。。。
2007-03-18 17:02
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

就是10,数组是从0开始的,而且主函数中的有这句if((k+1)%10==0),当K=9时就不输出,这是第十个数


雁无留踪之意,水无取影之心
2007-03-18 17:04
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
以下是引用cabin0120在2007-3-18 16:39:55的发言:

题目规定主函数是不能变的

你的这个主函数是教材的题目么?这个题目的确错了
它本意是每10个就换行,结果用else导致每10个就少输出1个
不改主函数,丢失数据的问题无法解决!


“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2007-03-18 17:07
快速回复:以下程序有什么问题吗?
数据加载中...
 
   



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

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