| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 397 人关注过本帖
标题:[讨论]朋友们看看这两个代码看看如何可以简短一点。
只看楼主 加入收藏
zkh19890916
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-4-27
收藏
 问题点数:0 回复次数:0 
[讨论]朋友们看看这两个代码看看如何可以简短一点。


(一)

#include <stdio.h>
void main()
{
char num[8];
int a=0;
int counter=-1;
printf("请输入原代码\n");
while (num[a-1]!='\n')
{
num[a]=getchar();
a++;
counter++;
}
for (a=0;a<counter;a++)
{
num[a]-=48;
}
for (a=0;a<counter;a++)
{
num[a]=(num[a]+5)%10;
}
a=num[0];
num[0]=num[counter-1];
num[counter-1]=a;
printf("加密后的数据\n");
for (a=counter-1;a>=0;a--)
{
printf("%d",num[a]);
}
printf("\n");
}


(二)

#include <stdio.h>
#include <string.h>
#define N 50
struct student
{
int num;
char name[20];
float grade1;
float grade2;
float grade3;
float pgs;
}stu[N],temp;

struct student shuru();//输入学员信息函数
int save(int i);//保存学员信息函数
void shuchu(int i);//输出学员信息函数
void paixu(int i);//根据平均成绩排序函数
int charu(int i);//插入学员信息函数
int del(int i);//删除学员信息函数

void main()
{
int gonglen;
int xiabiao=0;
xiabiao=save(xiabiao);//保存学员信息函数
printf("排序前的学员信息如下:\n");
shuchu(xiabiao);//输出学员信息函数
paixu(xiabiao);//根据平均成绩排序函数
printf("\n排序后的学员信息如下:\n");
shuchu(xiabiao);//输出学员信息函数
do
{
printf("\n功能:0、退出 1、插入新学员 2、删除某个学员");
printf("\n请选择:");
scanf("%d",&gonglen);
switch(gonglen)
{
case 0:break;
case 1:xiabiao=charu(xiabiao);break;//插入学员信息函数
case 2:xiabiao=del(xiabiao);break;//删除学员信息函数
default:printf("请在0~2选择!");
}
}while(gonglen!=0);
printf("\n");
}
//输入学员信息函数
struct student shuru()
{
printf("请输入学员信息:\n");
printf("\n学号:");
scanf("%d",&temp.num);
printf("姓名:");
fflush(stdin);
gets(temp.name);
printf("三门成绩:\n");
printf("成绩1:");
scanf("%f",&temp.grade1);
printf("成绩2:");
scanf("%f",&temp.grade2);
printf("成绩3:");
scanf("%f",&temp.grade3);
temp.pgs=(temp.grade1+temp.grade2+temp.grade3)/3;
return temp;
}
//保存学员信息函数
int save(int i)
{
char ans;
do
{
stu[i]=shuru();
printf("\n是否继续?(y or n):");
fflush(stdin);
ans=getchar();
i++;
}while(ans=='y');
return i;
}
//输出学员信息函数
void shuchu(int i)
{
int k;
printf("学号\t\t姓名\t\t平均成绩");
for(k=0;k<i;k++)
{
printf("\n%d\t\t%s\t\t%5.2f",stu[k].num,stu[k].name,stu[k].pgs);
}
}
//根据平均成绩排序函数
void paixu(int i)
{
int j,k;
for(j=0;j<i;j++)
{
for(k=0;k<i-j-1;k++)
{
if(stu[k].pgs<stu[k+1].pgs)
{
temp=stu[k];
stu[k]=stu[k+1];
stu[k+1]=temp;
}
}
}
}
//插入学员信息函数
int charu(int i)
{
int num=0;
int k,j;
char ans;
do
{
printf("\n是否要插入新学员?(y or n):");
fflush(stdin);
ans=getchar();
if(i>=50)
printf("\n学员已满50,不能插入新学员!\n");
else if(ans=='y')
{
num=1;
temp=shuru();
for(k=0;k<i;k++)
{
if(temp.pgs>stu[k].pgs)
break;
}
for(j=i;j>k;j--)
stu[j]=stu[j-1];
stu[k]=temp;
i++;
}
else
break;
}while(1);
if(num==1)
{
printf("\n插入新学员后的学员信息如下:\n");
shuchu(i);//输出学员信息函数
}
return i;
}
//删除学员信息函数
int del(int i)
{
int num=0;
int k,j;
char ans;
do
{
printf("\n是否要删除某个学员?(y or n):");
fflush(stdin);
ans=getchar();
if(ans=='y')
{
num=1;
printf("\n请输入要删除的学员的学号:");
scanf("%d",&temp.num);
for(k=0;k<i;k++)
{
if(temp.num==stu[k].num)
break;
}
for(j=k;j<i;j++)
stu[j]=stu[j+1];
i--;
}
else
break;
}while(1);
if(num==1)
{
printf("\n删除学员后的学员信息如下:\n");
shuchu(i);//输出学员信息函数
printf("\n");
}
return i;
}

请大家给点意见!~

搜索更多相关主题的帖子: 朋友 代码 
2007-05-19 17:17
快速回复:[讨论]朋友们看看这两个代码看看如何可以简短一点。
数据加载中...
 
   



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

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