当前位置:首页 » 编程语言 » c语言rank50
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言rank50

发布时间: 2022-09-24 03:08:10

1. c语言排序 选择排序和冒泡排序

几点建议:
1 C语言有自带的qsort,就是实现快速排序的。你应该学习使用它就好了。
2 NODE*records[100]; 只能排序最多100个元素吗?这样的程序没有什么实际意义啊
3 rank函数里,那么多strcpy,如果有bug的话,你可就有得哭了。
4 那个超级长的if语句啊,你没有学过switch语句吗?

2. c语言--有关学生的成绩排名

小小我一般不搞这东西的,老生常谈。看你那么急,急人所难吧。程序已调试通过。
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define N 5

struct student
{
char num[6];
char name[8];
int score[4];
int All;
int rank;
} stu[5];

void input()
{
int i,m,j;
for(i=0;i<5;i++)
{ stu[i].All=0;
stu[i].rank=1;/* 名次预置初值 */
printf("\n请输入第 %d个学生数据\n",i+1);
printf("学号: ");
scanf("%s",stu[i].num);
printf("姓名: ");
scanf("%s",stu[i].name);
for(j=0;j<4;j++)
{
printf("成绩 %d:",j+1);
scanf("%d",&stu[i].score[j]);
stu[i].All=stu[i].All+stu[i].score[j];
}
}
printf("\n");
for(i=0;i<5;i++)
for(m=0;m<5;m++)
if(stu[i].All<stu[m].All)stu[i].rank++;
}

void print()/* stu[]是全局结构体变量,无需作为参数传递 ,函数无返回值声明为void型,不声明默认返回类型为int型 */
{
int i,j;
system("cls");/*为了增加可移植性,用这个代替clrscr(),因为clrscr()不是标准库函数*/
for(i=0;i<60;i++)printf("-");
printf("\n");
printf("| 学号 | 姓名 | 数学 | 英语 | 计算机| 哲学 |\n");
for(i=0;i<5;i++)
{
for(j=0;j<60;j++)
printf("-");
printf("\n");
printf("| %5s | %10s ",stu[i].num,stu[i].name);
for(j=0;j<4;j++)
printf("| %3d ",stu[i].score[j]);
printf("|\n");
}
for(i=0;i<60;i++)printf("-");
}

void print1()
{
int i,j;
system("cls");
for(i=0;i<77;i++)printf("-");
printf("\n");
printf("| 学号 | 姓名 | 数学 | 英语 | 计算机| 哲学 | 总分 | 名次|\n");
for(i=0;i<5;i++)
{
for(j=0;j<77;j++)
printf("-");
printf("\n");
printf("| %5s | %10s ",stu[i].num,stu[i].name);
for(j=0;j<4;j++)
printf("| %3d ",stu[i].score[j]);
printf("| %5d |",stu[i].All);
printf(" %2d |\n",stu[i].rank);
}
for(i=0;i<77;i++)printf("-");
}

int main()
{
int i,j;
for(j=1;j<5;j++)
{
system("cls");
printf("Please select:\n");
printf("1: input data.\n");
printf("2: print original data.\n");
printf("3: print the sorted data.\n");
printf("4: exit.\n");
scanf("%d",&i);
switch(i)
{
case 1 : input(); break; /* input()函数根本没有实参,没有实参怎么可以有形参勒?实参形参要对应哦,这里也不需要实参,下同 */
case 2 : print(); getch();break;
case 3 : print1();getch();break;
case 4 : break;
}
}

system("pause");
return 0;
}
/* 不要这样写: */
/* void input() */
/* struct student stu[]; */
/* 这不符合现在的ANSI的c99标准 ,现在被认为是错误的,要这样写 */
/* void input(struct student stu[]) 当然我说的是当需要传递参数的情况下 */

3. 编写程式输出十个同学C语言成绩,并从大到小排序

编写程式输出十个同学C语言成绩,并从大到小排序
编写程式输出十个同学C语言成绩,并从大到小排序

#include<stdio.h>intmain(){doublea[10];inti,j;doubletem;boolbchange=false;printf("请输入10位同学的C语言成绩,用空格隔开:\n");for(i=0;i<10;i++){scanf("%lf",&a[i]);}Bubblefor(i=1;i<10;i++){bchange=false;for(j=0;j<10-i;j++){if(a[j]<a[j+1]){tem=a[j];a[j]=a[j+1];a[j+1]=tem;bchange=true;}}if(!bchange)notchangebreak;}printf("10位同学的C语言成绩由高到低是:\n");for(i=0;i<10;i++){printf("%5.1lf",a[i]);}printf("\n");return0;}

#include<stdio.h>
voidmain()
{
floata[10],k;
inti,j;
for(i=0;i<=9;i++)
scanf("%f",&a[i]);
for(i=0;i<=9;i++)
for(j=i+1;j<=9;j++)
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
for(i=0;i<=9;i++)
printf("%f",a[i]);
}

用C语言编写“给十个数从大到小排序”
气泡排序法:
voidrank1(inta[],intn)
{inti,j,t;
for(i=0;i<n-1;i++)
{
for(j=n-1;j>i;j--)
if(a[j-1]>a[j]){t=a[j-1];a[j-1]=a[j];a[j]=t;}
};
}
优化后的程式:
voidrank1(inta[],intn)
{inti,j,t,flag;
for(i=0;i<n-1;i++)
{flag=0;
for(j=n-1;j>i;j--)
if(a[j-1]>a[j]){t=a[j-1];a[j-1]=a[j];a[j]=t;flag=1;}
if(flag==0)break;
}
}

求解,用C语言编写一个程式,随机生成100个数,并从大到小排序

#include"stdafx.h"vc++6.0加上这一行.#include"stdio.h"#include"time.h"#include"stdlib.h"intmain(void){intnDec[100],i,j,k;srand((unsigned)time(NULL));for(i=0;i<100;nDec[i++]=rand());for(i=0;i<100;i++){for(k=i,j=k+1;j<100;j++)if(nDec[k]<nDec[j])k=j;if(i!=k){j=nDec[i];nDec[i]=nDec[k];nDec[k]=j;}printf("%d",nDec[i]);}printf("\n");return0;}

C语言编写程式,从键盘输入10个数据,按从大到小的顺序输出
main()
{
inta[10],i,j,k;
printf("输入10个整数:");
for(i=0;i<10;i++)
{
scanf("%d",a+i);
for(j=i;j>0;j--)
if(a[j-1]>=a[j])
break;
else{k=a[j-1];a[j-1]=a[j];a[j]=k;}
}
for(i=0;i<10;i++)
printf("%d",a[i]);
}

c语言要求:编写程式将十个元素的个数组a[10]从大到小打印输出…
#include<stdio.h>
intmain()
{
inta[10];
inti,j;
intt;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<10;i++)
printf("%d",a[i]);
return0;
}

c语言程式设计输入50个字符,按从大到小排序输出
输入一行字串,排序前50个,
#include<stdio.h>
#include<string.h>
intmain()
{
charc;
inti,j;
charbuf[50],temp;
printf("input50numbers\n");
for(i=0;i<50;i++)
{
if((c=getchar())==EOF)
{
printf("inputerr\n");
return-1;
}
buf[i]=c;
}
for(i=0;i<49;i++)
{
for(j=0;j<49-i;j++)
{
if(buf[j]<buf[j+1])
{
temp=buf[j];
buf[j]=buf[j+1];
buf[j+1]=temp;
}
}
}
for(i=0;i<50;i++)
putchar(buf[i]);
printf("\n");
return0;
}

气泡排序,选择排序,快速排序

c语言编写,计算一矩阵的特征值,按从大到小排序输出。
#include<stdio.h>
intmain()
{
inta[3][5],i,j,k,temp;
通过读取给3×5的阵列赋值
for(i=0;i<3;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
一行一行的判断
for(k=0;k<3;k++)
{
标准冒泡法
for(j=0;j<9;j++)
{
for(i=0;i<9-j;i++)
{
if(a[k][i]<a[k][i+1])
{
temp=a[k][i];
a[k][i]=a[k][i+1];
a[k][i+1]=temp;
}
}
}
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
}

c语言(排序算法)随机输入10个整数,将其从大到小排序并输出。

#include<stdio.h>voidmain(){inti,a[10];voidpaixu(ints[10],intn);printf("请输入10个数:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}paixu(a,10);for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}voidpaixu(ints[10],intn){inti,j,t=0;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++){if(s[i]<s[j]){t=s[i];s[i]=s[j];s[j]=t;}}}

分页:
1
23

4. C语言中的排序函数是什么

include <cstdlib> 或 #include <stdlib.h>
qsort(void* base, size_t num, size_t width, int(*)compare(const void* elem1, const void* elem2))

参数表
*base: 待排序的元素(数组,下标0起)。
num: 元素的数量。
width: 每个元素的内存空间大小(以字节为单位)。可用sizeof()测得。
int(*)compare: 指向一个比较函数。*elem1 *elem2: 指向待比较的数据。
比较函数的返回值
返回值是int类型,确定elem1与elem2的相对位置。
elem1在elem2右侧返回正数,elem1在elem2左侧返回负数。
控制返回值可以确定升序/降序。

产生随机数的函数也是rand(),不是rank().

5. c语言中排名问题

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#definestatusint

#defineNAME30/*各类名称字数上限*/
#defineSTU100/*学生人数上限*/
#defineSUB10/*课程数上限*/

typedefstructrecord{
floatscore;/*成绩分数*/
}record;

typedefstructstudent{
intid;/*索引性质的id*/
intno;/*学号*/
charname[NAME];/*姓名*/
recordscores[SUB];/*各门课成绩分数*/
floattotalScore;/*总分*/
floataverageScore;/*平均分*/
intranking;/*名次*/
}student;

intsubNum=3;/*课程数*/
charsubject[SUB][NAME]={"数学","英语","计算机"};/*课程名称*/


/**********************以下为函数声明**********************/
intstuInfoEmpty(studentstu[],intstuNum);/*学生信息判空*/

statusinputStuInfo(studentstu[],intstuIndex,intsubNum);/*录入单个学生信息*/
statusinputAllStuInfo(studentstu[],int*stuNum,intsubNum);/*录入全部学生信息*/

statuscalcStuInfo(studentstu[],intstuIndex,intsubNum);/*计算处理单个学生信息*/
statuscalcAllStuInfo(studentstu[],intstuNum,intsubNum);/*计算处理全部学生信息*/

statusprintStuInfo(studentstu[],intstuIndex,intsubNum,intinclRanking);/*输出单个学生信息*/
statusprintAllStuInfo(studentstu[],intstuNum,intsubNum,intinclRanking);/*输出全部学生信息*/

statusdescSort(studentstu[],intstuNum,intsubNum);/*按总分降序排列并录入名次*/

intgetCommand(void);/*输入命令编号*/
statusprintMeunText(void);/*打印菜单文本*/
statusrunMeun(studentstu[],intstuNum,intsubNum);/*调出菜单*/
/**********************以上为函数声明**********************/


intmain(void){
studentstu[STU]={-1};/*学生结构体数组*/
intstuNum;
inti;

runMeun(stu,stuNum,subNum);

return0;
}

/*学生信息判空*/
/*为空返回1;不空返回0*/
intstuInfoEmpty(studentstu[],intstuNum){
inti;

if(stuNum==0)
return1;
for(i=0;i<stuNum;i++)
if(stu[i].id==-1)
return1;
return0;
}

/*录入单个学生信息*/
statusinputStuInfo(studentstu[],intstuIndex,intsubNum){
inti;

scanf("%d",&stu[stuIndex].no);/*学号*/
if(stu[stuIndex].no==-1){/*学号录入-1以结束*/
stu[stuIndex].id=-1;
return-1;/*本次未录入*/
}

scanf("%s",&stu[stuIndex].name);/*姓名*/

for(i=0;i<subNum;i++){
scanf("%f",&stu[stuIndex].scores[i].score);
}/*各门课成绩分数*/

for(i=0;i<subNum;i++)
if(stu[stuIndex].scores[i].score>100||stu[stuIndex].scores[i].score<0)
return0;/*本次录入错误*/

return1;/*本次录入成功*/
}

/*录入全部学生信息*/
statusinputAllStuInfo(studentstu[],int*stuNum,intsubNum){
inti,inputStatus,count;

puts("======================================================");
puts("录入学生信息");
puts("======================================================");
putchar(' ');

if(*stuNum!=0){
printf("已有%d名学生信息! ",*stuNum);
putchar(' ');
puts("继续录入以新增(学号录入-1以结束)↓↓");
putchar(' ');
}
else{
puts("请录入学生信息(学号录入-1以结束)↓↓");
putchar(' ');
}

/*录入信息之表头*/
puts("------------------------------------------------------");
printf(" 学号 姓名 ");
for(i=0;i<subNum;i++)
printf("%s ",subject[i]);
putchar(' ');
puts("------------------------------------------------------");

/*录入信息*/
count=0;
i=*stuNum;
while(1){
printf("第%d名学生 ",i+1);
stu[i].id=i+1;
inputStatus=inputStuInfo(stu,i,subNum);
if(inputStatus==1){
i++;
count++;
}
elseif(inputStatus==0){
putchar(' ');
puts("成绩输入错误!请重新输入↓");
continue;
}
elseif(inputStatus==-1)
break;
}
*stuNum+=count;
puts("------------------------------------------------------");
putchar(' ');

putchar(' ');
if(count!=0)
printf("本次%d名学生信息录入完毕!即将返回主菜单。 ",count);
else
printf("您本次未输入学生信息!即将返回主菜单。 ");
putchar(' ');
puts("按任意键继续...");
putchar(' ');
fflush(stdin);
getch();
return1;
}

/*计算处理单个学生信息*/
statuscalcStuInfo(studentstu[],intstuIndex,intsubNum){
inti;

stu[stuIndex].totalScore=stu[stuIndex].averageScore=0;

/*计算总分*/
for(i=0;i<subNum;i++){
stu[stuIndex].totalScore+=stu[stuIndex].scores[i].score;
}
stu[stuIndex].averageScore=stu[stuIndex].totalScore/subNum;/*计算平均分*/

return1;
}

/*计算处理全部学生信息*/
statuscalcAllStuInfo(studentstu[],intstuNum,intsubNum){
inti;

/*计算总分、平均分等*/
for(i=0;i<stuNum;i++)
calcStuInfo(stu,i,subNum);

return1;
}

/*输出单个学生信息*/
statusprintStuInfo(studentstu[],intstuIndex,intsubNum,intinclRanking){
inti;

if(inclRanking)
printf("%d ",stu[stuIndex].ranking);/*名次*/
printf("%d ",stu[stuIndex].no);/*学号*/
printf("%s ",stu[stuIndex].name);/*姓名*/
for(i=0;i<subNum;i++)/*各门课成绩分数*/
printf("%.2f ",stu[stuIndex].scores[i].score);
printf("%.2f ",stu[stuIndex].totalScore);/*总分*/
printf("%.2f ",stu[stuIndex].averageScore);/*平均分*/
putchar(' ');

return1;
}

/*输出全部学生信息*/
statusprintAllStuInfo(studentstu[],intstuNum,intsubNum,intinclRanking){
inti;

if(stuInfoEmpty(stu,stuNum)){
puts("尚未录入学生信息!即将返回主菜单。");
putchar(' ');
puts("按任意键继续...");
putchar(' ');
fflush(stdin);
getch();
return0;
}

puts("======================================================");
puts("全部学生信息");
puts("======================================================");
putchar(' ');

if(inclRanking)
printf("%d名学生信息如下,按总分由高到低排列名次↓↓ ",stuNum);
else
printf("%d名学生信息如下↓↓ ",stuNum);
putchar(' ');

/*输出信息之表头*/
puts("------------------------------------------------------");
if(inclRanking)
printf("名次 ");
printf("学号 ");
printf("姓名 ");
for(i=0;i<subNum;i++)
printf("%s ",subject[i]);
printf("总分 ");
printf("平均分 ");
putchar(' ');
puts("------------------------------------------------------");

/*输出信息*/
for(i=0;i<stuNum;i++)
printStuInfo(stu,i,subNum,inclRanking);
puts("------------------------------------------------------");
putchar(' ');

putchar(' ');
puts("学生信息输出完毕!即将返回主菜单。");
putchar(' ');
puts("按任意键继续...");
putchar(' ');
fflush(stdin);
getch();
return1;
}

/*按总分降序排序、录入名次并输出*/
statusdescSort(studentstu[],intstuNum,intsubNum){
inti,j;
studenttemp;

if(stuInfoEmpty(stu,stuNum))
return0;

/*按总分降序*/
for(i=0;i<stuNum-1;i++)
for(j=0;j<stuNum-1-i;j++)
if(stu[j].totalScore<stu[j+1].totalScore){
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}

/*录入名次*/
for(i=0;i<stuNum;i++)
stu[i].ranking=i+1;

return1;
}

/*输入命令编号*/
intgetCommand(void){
intkey;/*命令编号*/

printf("请输入命令编号以开启操作:");
scanf("%d",&key);

returnkey;
}

/*打印菜单文本*/
statusprintMeunText(void){
puts("======================================================");
puts("学生信息管理");
puts("------------------------------------------------------");
printf("%4c 功能详情 ",'#');
puts("------------------------------------------------------");
printf("%4d 输入学生信息 ",1);
printf("%4d 按成绩由高到低排序 ",2);
printf("%4d 退出 ",7);
puts("======================================================");
putchar(' ');

return1;
}

statusrunMeun(studentstu[],intstuNum,intsubNum){
intkey;
do{
system("cls");/*清屏*/
printMeunText();/*打印菜单文本*/
key=getCommand();/*输入命令编号*/
putchar(' ');
switch(key){
case1:system("cls");inputAllStuInfo(stu,&stuNum,subNum);calcAllStuInfo(stu,stuNum,subNum);break;
case2:system("cls");descSort(stu,stuNum,subNum);printAllStuInfo(stu,stuNum,subNum,1);break;
case7:puts("程序结束! ");break;
default:puts("输入错误,请重新输入! 按任意键继续...");getch();break;
}
}while(key!=7);

getch();
return1;
}

运行结果

主菜单

6. c语言中rank函数怎么用

c语言中rank函数是自定义的函数吧?如果是的话,怎么用,还必须看这个函数是怎么定义的了。

7. C语言编程:随机产生20个20-50之间的随机整数,然后排序后输出。 急求答案,谢谢

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a[20],b[20];
for(int i = 1; i<= 20; i++)
{
a[i] = rand()%30 + 20;//产生一个1到30的随机数,然后再加20 就是20到50的随机数了
}

for (int j = 1; j<=20;j++)
{

for(int i = 1; i<=20; i++)
{
int temp;
if(a[i]>a[i+1])
{
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}//end if

}//end for i
}//end for j

for ( i = 1; i <=20; i++)
{
printf("%d,",a[i]);
}
printf("\n");

return 0;

}

8. 计算机二级c语言评分标准是什么

1、选择题:40题,每题1分。按标答给分
2、程序填空:3处空,每空6分。共18分,按标答给分,如果和标答的写法不一样,就算对的也没有分。每一空有每一空的分数。做对一空就给6分
3、程序改错:2处错误,每处9分,共18分。都是/*found*/下面的一行有错误,按标答给分,如果和标答的写法不一样,就算对的也没有分。
4、程序编制题:共24分。按程序结果给分。编程完成后,存盘,编译,连接,执行,按题目要求输入,得到要求的结果就有24分,否则就是0分。
计算机二级考试是全国计算机等级考试(National
Computer
Rank
Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。
考试采用全国统一命题,统一考试的形式,各科目均为上机操作考试。

9. C语言使用随机函数rand()产生50个10~99的互不相同的随机整数放入数组a中,再按从大到小的顺序排序

你好!!

你的代码就没有输出部分呀

#include"stdlib.h"
#include"stdio.h"
#include"time.h"
voidmain()
{
intn,a[50],i,j,t;
srand(time(NULL));
for(i=0;i<50;i++)
{
a[i]=rand()%90+10;
for(j=0;j<i-1;j++)
if(a[i]==a[j])
i--;
}
printf("nafter: ");

for(i=0;i<50;i++)//下面这是打印输出
{
if(i%10==0)//十个数字换行
printf(" ");
printf("%d",a[i]);
}
}