| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 526 人关注过本帖
标题:[讨论]结构体
只看楼主 加入收藏
271391233
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2005-2-24
收藏
 问题点数:0 回复次数:9 
[讨论]结构体

成绩结构体 #include<stdio.h> struct cat { char name[10]; int cj; };

void c(struct cat a[],int x,int y) { struct cat temp; temp=a[x]; for (;x>y;x--) a[x]=a[x-1]; a[y]=temp; }

void ps(struct cat a[],int n) { int i,j; for (i=1;i<n;i++) { for (j=0;j<i;j++) { if (a[j].cj<a[i].cj) { c(a,i,j); break; } } } }

void display(struct cat a[],int n) { int i; for (i=0;i<n;i++) { printf("第%d名: ",i+1); printf("姓名:%s 成绩:%d\n",a[i].name,a[i].cj); } }

void main() { struct cat sion[50],bb[50]; int i,j,n; FILE *p; //sion[1]=sion[0]; //printf("%s %d",sion[1].name,sion[1].cj); printf("需要输入几个学生成绩?"); scanf("%d",&n); for (i=0;i<n;i++) { printf("第%d个学生的姓名:",i+1); scanf("%s",&sion[i].name); printf("第%d个学生的成绩:",i+1); scanf("%d",&sion[i].cj); printf("\n"); } ps(sion,n); printf("\n成绩排名如下:\n"); display(sion,n); printf("\n写入到文件(jak)中!......\n\n"); p=fopen("jak","wb+"); fwrite (&sion[n],sizeof(struct cat),n,p); fread (&bb[n],sizeof(struct cat),n,p); printf("从文件中读取,并显示!\n\n"); display(sion,n); fclose(p);

}

搜索更多相关主题的帖子: 结构体 
2005-10-06 19:09
271391233
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2005-2-24
收藏
得分:0 

字符串排序 #include<stdio.h> #include<string.h> void main() { char a[5][10]; char *temp,*q[5]; int i,j; for (i=0;i<5;i++) { printf("请输入第%d个字符串",i+1); scanf("%s",&a[i]); q[i]=a[i]; } for (i=0;i<4;i++) { for(j=i+1;j<5;j++) if(stricmp(q[i],q[j])>0) { temp=q[i]; q[i]=q[j]; q[j]=temp; } } printf("排序后的字符串(升序)\n"); for(i=0;i<5;i++) { printf("\n字符串%d=%s",i+1,q[i]); } /*for(i=0;i<5;i++) { printf("\n%s",q[j]); }*/

for (i=0;i<4;i++) { for(j=i+1;j<5;j++) if(stricmp(q[i],q[j])<0) { temp=q[i]; q[i]=q[j]; q[j]=temp; } } printf("\n排序后的字符串(降序)"); for(i=0;i<5;i++) { printf("\n字符串%d=%s",i+1,q[i]); } }


坚持就是胜利>>静心,静思
2005-10-06 19:10
271391233
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2005-2-24
收藏
得分:0 
字符串的比较
#include&lt;stdio.h&gt;
#include&lt;string.h&gt;
#include&lt;stdlib.h&gt;
void main()
{
 char a[10],b[10];
 char *pa,*pb;
 gets(a);
 gets(b);
 pa=a;
 pb=b;
 for(;*pa!='\0';pa++);
 pa--;
 for(;*pb!='\0';pb++);
 pb--;
 for(;pa!=&amp;a[0];pa--,pb--)
 {
  if(*pa!=*pb)
  {
   printf("%s没有出现在%s的末尾",a,b);
   exit(0);
  }
 }
  printf("%s出现在%s的末尾",a,b);
}

坚持就是胜利>>静心,静思
2005-10-06 19:11
271391233
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2005-2-24
收藏
得分:0 
学生信息
#include&lt;stdio.h&gt;
void main()
{
 struct stu
 {
  int h;//学号
  char name[20];//姓名
  char kc[20];//登记的课程
  int year;//入学年份
 };
 struct stu students[10];
 int i,Y,H,j;//i循环变量,Y按年份查找的年,H按学号查找的号
 for(i=0;i&lt;10;i++)
 {
  printf("输入第%d名学生的学号:",i+1);
  scanf("%d",&amp;students[i].h);
  printf("输入第%d名学生的姓名:",i+1);
  scanf("%s",students[i].name);
  printf("输入第%d名学生登记的课程:",i+1);
  scanf("%s",students[i].kc);
  printf("输入第%d名学生的入学年份:",i+1);
  scanf("%d",&amp;students[i].year);
 }
 printf("您可以:1.按年份查找学生资料\n2.按学号查找学生资料\n(输入1或2)");
 scanf("%d",&amp;j);
 if(j==1)
 {
  do
  {
   printf("请输入入学年份:(输入a退出)");
   scanf("%d",&amp;Y);
   for(i=0;i&lt;10;i++)
   {
    if(students[i].year==Y)
     printf("学号:%d 姓名:%s 登记的课程:%s 入学年份:%d\n",students[i].h,students[i].name,students[i].kc,students[i].year);
   }
  }while(getchar()!='a');
 }
 else if(j==2)
 {
  do
  {
   printf("请输入入学学号:(输入a退出)");
   scanf("%d",&amp;H);
   for(i=0;i&lt;10;i++)
   {
    if(students[i].h==H)
     printf("学号:%d 姓名:%s 登记的课程:%s 入学年份:%d\n",students[i].h,students[i].name,students[i].kc,students[i].year);
   }
  }while(getchar()!='a');
 }
}

坚持就是胜利>>静心,静思
2005-10-06 19:12
271391233
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2005-2-24
收藏
得分:0 

10年雇员 #include<stdio.h> #include<string.h> void main() { struct com { int bh;//雇员编号 char name[20];//雇员姓名 float m;//工资 }; struct date { int year; int mouth; int day; }; struct com p[5]; struct date q[5]; int i; for(i=0;i<5;i++) { printf("输入第%d位雇员编号:",i+1); scanf("%d",&p[i].bh); printf("输入第%d位雇员姓名:",i+1); scanf(" %s",p[i].name); printf("输入第%d位雇员工资:",i+1); scanf("%f",&p[i].m); printf("输入第%d位雇员进入公司的日期:(格式为:年/月/日)",i+1); scanf("%d/%d/%d",&q[i].year,&q[i].mouth,&q[i].day); if(p[i].m<=2000) p[i].m=p[i].m*(1+15/100);

else if((p[i].m>2000)&&(p[i].m<=5000)) p[i].m=p[i].m*(1+10/100); } for(i=0;i<5;i++) { if((2004-q[i].year>10)||(2004-q[i].year==10&&4-q[i].mouth>=0)||(2004-q[i].year==10&&4-q[i].mouth==0&&20-q[i].day>=0)) printf("雇员编号:%d\n雇员姓名:%s\n雇员工资:%f\n雇员进入公司的日期:(格式为:年/月/日)%d/%d/%d\n",p[i].bh,p[i].name,p[i].m,q[i].year,q[i].mouth,q[i].day); } }


坚持就是胜利>>静心,静思
2005-10-06 19:13
271391233
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2005-2-24
收藏
得分:0 
二维数组相加
#include&lt;stdio.h&gt;
void main()
{
 int a[5][5],b[5][5],c[5][5],i,j;
 for(i=0;i&lt;5;i++)
 {
  for(j=0;j&lt;5;j++)
  {
   printf("输入a[%d][%d]:",i,j);
   scanf("%d",&amp;a[i][j]);
  }
 }
 for(i=0;i&lt;5;i++)
 {
  for(j=0;j&lt;5;j++)
  {
   printf("输入b[%d][%d]:",i,j);
   scanf("%d",&amp;b[i][j]);
  }
 }
 for(i=0;i&lt;5;i++)
 {
  for(j=0;j&lt;5;j++)
  {
   c[i][j]=a[i][j]+b[i][j];
   printf("相加后的数组c[%d][%d]=%d\n",i,j,c[i][j]);
  }
 }
}

坚持就是胜利>>静心,静思
2005-10-06 19:13
271391233
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2005-2-24
收藏
得分:0 
#include&lt;stdio.h&gt;
void main()
{
 int a[3][3],b[3][3],c[3][3];
 int (*pa)[3],(*pb)[3],(*pc)[3],i,j;
 pa=a;
 pb=b;
 pc=c;
 for(i=0;i&lt;3;i++)
 {
  for(j=0;j&lt;3;j++)
  {
   printf("请输入a[%d][%d]的值",i,j);
   scanf("%d",*(pa+i)+j);
   //printf("%d",*(pa+i)+j);
   printf("请输入b[%d][%d]的值",i,j);
   scanf("%d",*(pb+i)+j);
  }
 }
 for(i=0;i&lt;3;i++,pa++,pb++,pc++)
 {
  for(j=0;j&lt;3;j++)
  {
   *(*pc+j)=*(*pa+j)+*(*pb+j);
   printf("c[%d][%d]=%d   ",i,j,(*pc)[j]);
  }
  printf("\n");
 }
}

坚持就是胜利>>静心,静思
2005-10-06 19:18
271391233
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2005-2-24
收藏
得分:0 
#include&lt;stdio.h&gt;
void main()
{
 int i,n,z1[10],z2[10];
 for(i=0;i&lt;10;i++)//接受第一组数
 {
  printf("请输入第一组数的第%d个数",i+1);
  scanf("%d",&amp;z1[i]);
 }
 for(i=9,n=0;(i&gt;=0)&amp;&amp;(n&lt;10);i--,n++)//把第一组的数逆循环给z2
 {
   z2[n]=z1[i];
 }
 for(n=0;n&lt;10;n++)//输出转换后的数组
  printf("数组转换后第%d个数:%d\n",n+1,z2[n]);
}

坚持就是胜利>>静心,静思
2005-10-06 19:21
271391233
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2005-2-24
收藏
得分:0 

#include<stdio.h> int akk(int r); int(*p)(int r); void main() { int a[3]; int i,z; for(i=0;i<3;i++) { printf("输入数组a的值:",i+1); scanf("%d",&a[i]); } p=akk; z=(*p)(i);

} int akk(int r) { int i,j,num; for(i=0;i<r;i++) { for(j=r;j>0;j--) num=akk[i]; akk[i]=akk[j]; akk[j]=num; } for(i=0;i<r;i++) return akk[i]; }


坚持就是胜利>>静心,静思
2005-10-06 19:21
271391233
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2005-2-24
收藏
得分:0 
#include&lt;stdio.h&gt;
void main()
{
 int a,b;
 void cj(int x,int y);
 printf("请输入两个数字:");
 scanf("%d%",&amp;a);
 scanf("%d",&amp;b);
 cj(a,b);
}
void cj(int x,int y)
{
 if(x*y==1000)
  printf("***a*b=1000***\n");
 else if(x*y&gt;1000)
  printf("***a*b&gt;1000***\n");
 else
  printf("******这不关我的事,a*b&lt;1000哦!!!******\n");
}

坚持就是胜利>>静心,静思
2005-10-06 19:22
快速回复:[讨论]结构体
数据加载中...
 
   



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

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