| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1143 人关注过本帖
标题:[求助]大家帮我看看这个在c++环境下编的c程序的问题
只看楼主 加入收藏
林仲
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-12-26
收藏
 问题点数:0 回复次数:10 
[求助]大家帮我看看这个在c++环境下编的c程序的问题
#include<string.h>
#define n 100
main()
{struct cxpf
 {
 char name[20];
   int xh;
   int pf;
}a[n]={{"张三",1,90},{"李四",2,89}};
struct cxpf *p,*q,a_1[n];
int i,j,b,c,k;char am[20];
for(p=a;p<a+n;p++)
{if(p->xh==0) return 0;
 else printf("name:%s\nxh:%d\npf:%d\n",p->name,p->xh,p->pf);}
printf("要添加新学生操行平分情况请输入1,查找请输入2,修改请输入3,复制请输入4");
scanf("%d",&i);
if(i==1)//添加
{scanf("%s,%d,%d",&am,&b,&c);
 strcpy(a[n+1].name,"am");a[n+1].xh=b;a[n+1].pf=c;
}
else if(i==2)               
{
 printf("请输入学号查找!");//查找
 scanf("%d",&j);
 for(q=a;q<a+n;q++)
  if(q->xh==j) printf("name:%s\nxh:%d\npf:%d\n",q->name,q->xh,q->pf);
}
else if(i==3)
{
printf("请输入学号查找!");//修改
scanf("%d",&j);
for(k=0;k<n;k++)
  if(a[k].xh==j)
   scanf("%s,%d,%d",&am,&b,&c);
   strcpy(a[k].name,"am"); a[k].xh=b; a[k].pf=c;
   printf("name:%s\nxh:%d\npf:%d\n",a[k].name,a[k].xh,a[k].pf);
}
else if(i==4)//复制
{
 strcpy(a_1[n].name,a[n].name);
 a_1[n].xh=a[n].xh;
 a_1[n].pf=a[n].pf;
}
else
 printf("请按非1,2,3,4任意键退出");
}
搜索更多相关主题的帖子: 下编 环境 
2005-05-09 14:42
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 
什么问题

我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2005-05-09 15:03
林仲
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-12-26
收藏
得分:0 
运行得不到预期结果呀~~

2005-05-09 15:28
林仲
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-12-26
收藏
得分:0 
斑竹帮我看一下呀!只是有警告~运行得不到结果,if语句后面的几乎没用上~

2005-05-09 20:58
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分:0 
你的预期结果是什么?
不知道你的想得到的结果,怎么帮你该··
快贴上你的预期结果!!

Every thing is possible.
2005-05-09 23:17
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分:0 

//我帮你修改了一下 //遵照你的程序的大体,稍微给你修改了下 //可以满足你的要求,看看把 //不妥满足你的要求敬请原谅 #include<string.h> #include<stdio.h> #include<stdlib.h>

#define n 100

struct cxpf { char name[20]; int xh; int pf;//不知道这个你是代表什么信息,我是把它当达成成绩处理了 }a[n]={{"张三",1,90},{"李四",2,89}};

void main() { struct cxpf *p,*q,a_1[n]; int i,j,b,c,k,m; int flag; int counter; char am[20]; flag=2; m=0; counter=0; printf("已有学生信息如下:\n"); for(p=a;p<a+flag;p++) { if(p->xh==0) goto label; else { printf("已经存在的第%d个学生信息如下:\n",++m); printf("姓名是: %s\n",p->name); printf("学号是: %d\n",p->xh); printf("成绩是: %d\n",p->pf); } } label: do{ printf("请输入按键:1(添加新学生情况),2:(查找),3(修改),4(复制),其他数字键(退出)!\n"); scanf("%d",&i); if(i==1)//添加 { printf("请输入你要添加的新学生情况:\n"); printf("请输入你要添加的新学生的姓名:\n"); scanf("%s",am); fflush(stdin); printf("请输入你要添加的新学生的学号:\n"); scanf("%d",&b); printf("请输入你要添加的新学生的成绩:\n"); scanf("%d",&c); strcpy(a[flag].name,am); a[flag].xh=b; a[flag].pf=c; printf("你输入的新学生的情况如下:(已成功添加)\n"); printf("姓名是: %s\n",a[flag].name); printf("学号是: %d\n",a[flag].xh); printf("成绩是: %d\n",a[flag].pf); flag++; } else if(i==2) { printf("请输入查找的学号!\n");//查找 scanf("%d",&j); for(q=a;q<a+flag;q++) { if(q->xh==j) { printf("查找成功,这个学生的信息如下:\n"); printf("姓名是: %s\n",q->name); printf("学号是: %d\n",q->xh); printf("成绩是: %d\n",q->pf); counter++; } } if(counter==0) printf("查找失败.\n"); counter=0; } else if(i==3) { printf("请输入修改的学号!\n");//修改 scanf("%d",&j); for(k=0;k<flag;k++) if(a[k].xh==j) { printf("请输入要修改的学生的新信息:\n"); printf("请输入新姓名:\n"); scanf("%s",am); printf("请输入新学号:\n"); scanf("%d",&b); printf("请输入新成绩:\n"); scanf("%d",&c); strcpy(a[k].name,am); a[k].xh=b; a[k].pf=c; printf("修改后的学生的信息如下:\n"); printf("姓名是: %s\n",a[k].name); printf("学号是: %d\n",a[k].xh); printf("成绩是: %d\n",a[k].pf); } printf("这个学生的信息不存在.\n"); } else if(i==4)//复制 { printf("把全部学生信息复制到a_1[n]中去:\n"); for(i=0;i<flag;i++) { strcpy(a_1[i].name,a[i].name); a_1[i].xh=a[i].xh; a_1[i].pf=a[i].pf; printf("复制后的第%d个学生信息如下:\n",i+1); printf("姓名是: %s\n",a_1[i].name); printf("学号是: %d\n",a_1[i].xh); printf("成绩是: %d\n\n",a_1[i].pf);

} } else//退出 { exit(1); } }while(1); }


Every thing is possible.
2005-05-10 00:44
林仲
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-12-26
收藏
得分:0 
我的问题很简单,就是见一个学生操行表—这个表我用结构体数组来实现,要求这个表可以修改,删除,添加,复制、查询。就这样了~~

2005-05-10 07:23
林仲
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-12-26
收藏
得分:0 
musicml
修改的很好哦,基本符合我的意思了~谢谢!

2005-05-10 10:30
林仲
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-12-26
收藏
得分:0 
顺便又问下,如果想把添加的学生情况保存起来的话是不是就要用工程来实现了呢?因为每次添加的成员退出运行后就失效了~

2005-05-10 10:52
牛虻
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2004-10-1
收藏
得分:0 
以下是引用林仲在2005-5-10 10:52:31的发言: 顺便又问下,如果想把添加的学生情况保存起来的话是不是就要用工程来实现了呢?因为每次添加的成员退出运行后就失效了~
可以利用文件来保存数据 例如:FILE *fp; char filename[10]; printf("Input filename:\n"); scanf("%s",filename); if(fp=fopen(filename,"w"))==NULL) {printf("Cannot open!");exit(0);} for(i=0;i<n;i++) if(fwrite(&a[i],sizeof(struct cxpf),1,fp)!=1) printf("file write error\n"); fclose(fp);

[此贴子已经被作者于2005-5-10 12:50:09编辑过]


土冒
2005-05-10 12:38
快速回复:[求助]大家帮我看看这个在c++环境下编的c程序的问题
数据加载中...
 
   



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

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