广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 4029 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
Starshing
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[C/C++][求助] 请问我这个交友系统问题出在哪
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

#define NAMELENGTH 10 /* 英文姓名字数(中文至多五个字) */
#define HABITNO 20 /* 问卷中兴趣的总数+1 */
#define STARNO 13 /* 星座中文最多3个字 */
#define BLOODNO 5 /* 血型最多两个英文字 */
#define LIVELENGTH 6 /* 居住地字数设定 */

#define LIMIT 100 /* 参加男女的人数上限 */
#define MIN 1 /* 参加者至少可选到的朋友人数 */
#define MAX 12 /* 参加者至多可选到的朋友人数 */
void function1(int habit,int star,int blood,
int live);

static char name, habit; /* 姓名及兴趣 */
static char star; /* 星座 */
static char blood; /* 血型 */
static char live; /* 居住地 */
static char gender; /* 性别 */

static struct record {
char name; /* 姓名 */
char habit; /* 兴趣 */
char star; /* 星座 */
char blood; /* 血型 */
char live; /* 居住地 */
int candidate_no; /* 候选人数 */
int candidate; /* 候选人索引 */
} male, female; /* 男女参加者基本资料 */

static int male_count=0, female_count=0; /* 计算男女参加人数 */

FILE *datafile; /* 参加者资料存档 */


/* 输入资料 */
void input_raw_data()
{
if ((datafile = fopen("datafile","r")) == NULL)
{
/* 如果档案不存在则新增 */
datafile = fopen("datafile","w");
}
else
{
/* 档案已经存在则附加在后面 */
datafile = fopen("datafile","a");
}

printf("Please input one record at a time.\n"); /* 提示 */
printf("Name:");
scanf("%s",name);
printf("Gender(M or F):");
scanf("%s",&gender);
char cc;
int i=0,j=1,num_elem;
FILE *inptr;
inptr=fopen ("INPUT.DAT","r");
while(fscanf(inptr,"%c",&cc)!=EOF)i++;
num_elem=i;
for(j=0;j<num_elem;j++)
{
printf("%c",cc);
}
fclose(inptr);
printf("Habit:%s",habit);
scanf("%s",habit);
char dd;
int a=0,b=1,num_elem1;
FILE *input;
input=fopen ("INFILE.DAT","r");
while(fscanf(input,"%c",&dd)!=EOF)a++;
num_elem1=a;
for(b=0;b<num_elem1;b++)
{
printf("%c",dd);
}
fclose(input);

printf("Star:"); /* 提示 */
scanf("%s",star);/* 输入资料 */

char ee;
int c=0,d=1,num_elem2;
FILE *in;
in=fopen ("IN.DAT","r");
while(fscanf(in,"%c",&ee)!=EOF)c++;
num_elem2=c;
for(d=0;d<num_elem2;d++)
{
printf("%c",ee);
}
fclose(in);
printf("血型:");
scanf("%s",blood);
printf("Name:%s Gender:%c Habit:%s Star:%s 血型:%s\n",name,gender,habit,star,blood);
fprintf(datafile,"%s %c %s %s %s\n",name,gender,habit,star,blood); /* 写入档案 */
fclose(datafile); /* 存档并关闭档案 */
}

/* 选择候选人 */
int friends_selection()
{
/* 宣告与设定变数 */
int score, /* 分数表 */
highest_score, /* 分数表中, 最高分的配对组合的分数 */
id, /* 分数表中, 最高分的配对组合的男生索引 */
..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容




献花 x0 回到顶端 [楼 主] From:台湾中华HiNet | Posted:2007-06-04 01:05 |
ety 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x719
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

哇...
你还能编译它呀?
这程式我的 compiler 吃下后因错误过多根本吐不出执行档...



简易电脑择友系统.cpp: In function `friends_selection':
简易电脑择友系统.cpp:296: warning: control reaches end of non-void function
简易电脑择友系统.cpp:121: warning: 'highest_score' might be used uninitialized in this function
简易电脑择友系统.cpp:122: warning: 'id' might be used uninitialized in this function
简易电脑择友系统.cpp:123: warning: 'candidate_id' might be used uninitialized in this function
简易电脑择友系统.cpp:124: warning: 'm' might be used uninitialized in this function
简易电脑择友系统.cpp:124: warning: 'n' might be used uninitialized in this function
简易电脑择友系统.cpp:125: warning: 'a1' might be used uninitialized in this function
简易电脑择友系统.cpp:125: warning: 'b1' might be used uninitialized in this function
简易电脑择友系统.cpp: In function `main':
简易电脑择友系统.cpp:380: warning: control reaches end of non-void function
简易电脑择友系统.cpp: At top level:
简易电脑择友系统.cpp:33: warning: 'live' defined but not used

看来我是老古板了, 该换 compiler...

表情


献花 x0 回到顶端 [1 楼] From:台湾和信超媒体宽带网 | Posted:2007-06-04 01:24 |
GNUGCC
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

如果可以执行表示程式没有语法的错误而是错在逻辑...
你最好检查一下你的程式逻辑或是可以大概描述一下
程式逻辑的内容是什么比较好分析出错误原因...


献花 x0 回到顶端 [2 楼] From:台湾中华电信HINET | Posted:2007-06-04 02:57 |
a86980
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x64 鲜花 x1308
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

看了一下主程式

应该输入

复制程式
void main(void)

其他的因为compiler问题一堆

可能是不一样的compiler吧


献花 x0 回到顶端 [3 楼] From:台湾 | Posted:2007-06-04 11:27 |
ety 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x719
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

a86980 兄, 您是指我的 compiler 吗? XD


献花 x0 回到顶端 [4 楼] From:台湾和信超媒体宽带网 | Posted:2007-06-04 22:02 |
a86980
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x64 鲜花 x1308
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用ety于2007-06-04 22:02发表的 :
a86980 兄, 您是指我的 compiler 吗? XD
不是啦

我 compiler 时也是出现一推问题

所以应该是他的 compiler 与我们不同吧


献花 x0 回到顶端 [5 楼] From:台湾 | Posted:2007-06-04 22:35 |
ety 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x719
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

GNUGCC 他有提到 "如果可以执行表示程式没有语法的错误而是错在逻辑..."

我很同意他的看法!

作者既然能 compile, 想必作者的 compiler 接受作者的语法, 或许作者给我们看程式报告会比较好! 希望能由作者的报告看出他的演算法有无问题... 不然, 我们并不熟悉作者的程式环境, 这洋洋洒洒的好几十行程式码我们很难帮忙 Debug!

不知道作者是用哪一个 compiler?
Turbo C ? 还是 Visual C++ ?


献花 x0 回到顶端 [6 楼] From:台湾和信超媒体宽带网 | Posted:2007-06-04 23:14 |
gamewalk
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x18
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

我用 Visual C++ 6.0 可以编译喔....但是看到不少Warning几乎都是没初始化就直接使用的问题,

我先讲一下我目前找到的问题是你friends_selection这个函式里你在读datafile档时,你是用格式

化输入fscanf(datafile,"%s %c %s %s",name,&gender,habit,star) 一次读取四样东西,但是

你datafile内的格式却是每个人的资料有五样东西,也就是会发生读第二个人的资料时会从第一个人

资料的第五个开始...不晓得你是不是少放了什么...不过就算改了程式运作时还是会再有一边出错,你

可不可以解释一下你在计算兴趣 星座 写型相似度这边计算加分的机制是什么可不可以解释一下我看

不太懂 ~"~ 里面有些地方感觉怪怪的在for i for j 内用到 m n 然后 for m for n 内用到 i j a1 b1

最后 for a1 for b1内又用到 m n ....还有你在该函式最后面while(min < MIN)里面的第一次

highest_score好像没有初始化成 -1,但是在检查highest_score完以后才有highest_score = -1;

建议可以把highest_score = -1摆在while一进来的时候...我目前只知道这些 其他不知道还有没有问题....


献花 x0 回到顶端 [7 楼] From:台湾永大数位动力公司 | Posted:2007-06-05 00:08 |
ety 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x719
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

唔 ~ 终于有高手出来解答了 ~

表情


献花 x0 回到顶端 [8 楼] From:台湾和信超媒体宽带网 | Posted:2007-06-05 00:39 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.056340 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言