C语言程序设计,结构体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言程序设计,结构体相关的知识,希望对你有一定的参考价值。

问题 A: 排名(结构体)
时间限制: 1 Sec 内存限制: 128 MB
提交: 740 解决: 288
[提交][状态][讨论版]
题目描述
Jiejie想知道他在班级里的排名,老师给他列出了一张有学生学号和成绩的清单。计算jiejie的排名。Ps:如果jiejie和第一名成绩相等,那他们是并列第一。

输入
第一行T代表T组数据。每组第一行是jiejie的学号,接下来的几行,每行是一个学生学号和成绩。学生的学号在10000000和99999999之间,成绩在0到100之间,学号和成绩都为0表示输入结束。学生人数小于等于1000人。

输出
对每组数据,输出jiejie的排名

样例输入
1
20070101
20070102 100
20070101 33
20070103 22
20070106 33
0 0
样例输出
2
提示

[提交][状态][讨论版]
?
中文 English

#include<stdio.h>
#include<stdlib.h>
typedef struct ScoreTable
    int num;
    int score;
st;
int main()
    
    st a[1024];
    int num,score,rank;
    int t;
    scanf("%d",&t);
    int tnum,tscore;
    while(t--)
         
         scanf("%d",&num);
         rank = 1;
         int i=0;
         while(1)
             scanf("%d%d",&tnum,&tscore);
             if(tnum == 0 && tscore == 0) break;
             a[i].num=tnum;a[i].score=tscore;i++;
             if(tnum == num) score = tscore;
         
         int n=i;
         for(i=0;i<n;i++)
             if(a[i].score>score) rank++;
         
         printf("%d\\n",rank);
    
    //system("pause");
    return 0;


此题目的解答已经放在了我的百度空间,

http://hi.baidu.com/vrzwlwidgwbetzq/item/6d6f8e5326c22c23db163548

还有一些被采纳的比较有趣的题目,

http://hi.baidu.com/vrzwlwidgwbetzq

希望对你有所帮助~~~~~~

参考技术A 程序已完成,并调试通过:
#include <stdio.h>
void main()

struct student

long id;
int score;
;
struct student stu[1000];
int i,j,k,n,num,mc;
long jj;
scanf("%d",&num);
for(i=0;i<num;i++)

scanf("%ld",&jj);
for(j=0;;j++)

scanf("%ld%d",&stu[j].id,&stu[j].score);
if(stu[j].id==jj)k=j;
if(stu[j].id==0)break;

n=j;
for(mc=1,j=0;j<n;j++)
if(stu[j].score>stu[k].score)mc++;
printf("%d\n",mc);

getch();
参考技术B c语言程序 解决的来啦

【C语言结构体题目】求点拨!!

#include <stdio.h>
main()
struct cmplx int x; int y; cnum[2]=1,3,2,7;
printf ("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);
程序运行结果是______
(题目里x y神马的把我弄晕了~~)

参考技术A 1,3分别初始化cnum[0].x和cnum[0].y
2,7分别初始化cnum[1].x和cnum[1].y
因此输出的结果为3/1*2 --> 6
只是输出一个6本回答被提问者采纳
参考技术B struct cmplx int x; int y; cnum[2]=1,3,2,7;
就是在定义结构体的时候同时对他赋值,
cnum[0].x和cnum[0].y 初始化为1,3
cnum[1].x和cnum[1].y 初始化为2,7
输出确实也是3/1*3=6
参考技术C 结果是6
cnum[0].x=1;cnum[0].y=3;
cnum[1].x=2;cnum[1].y=7;
printf ("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);
也就是
printf("%d\n",3/1*2);
参考技术D cnum[0].y=3 cnum[0].x=1 cnum[1].x=2
则 cnum[0].y/cnum[0].x*cnum[1].x=3/1*2=6

以上是关于C语言程序设计,结构体的主要内容,如果未能解决你的问题,请参考以下文章

C语言程序设计,结构体

关于C语言的结构体中元素的筛选,排列顺序。

c语言中返回结构体数组

【C语言结构体题目】求点拨!!

C语言程序设计用户自己建立数据类型

C语言结构体,求大佬指点