求c语言程序源代码,主题随便,尽量超过40行!谢谢!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求c语言程序源代码,主题随便,尽量超过40行!谢谢!!相关的知识,希望对你有一定的参考价值。

参考技术A #include<stdio.h>
#define
N
31
typedef
struct

long
num;
//学号
int
score;
//成绩
Student;
void
sort(Student
stu[]);//排序函数
void
insert(Student
stu[],Student
stu1);//插入函数
void
count(Student
stu[]);//计算总分及平均分
void
search(Student
stu[],long
num);//查询函数
main()

Student
stu[N],stu1;
int
i;
long
num;
printf("输入30位学生的学号
成绩:\n");
for(i=0;i<N-1;i++)
scanf("%ld%d",&stu[i].num,&stu[i].score);
sort(stu);
printf("输入欲插入的学生的学号
成绩:\n");
scanf("%ld%d",&stu1.num,&stu1.score);
insert(stu,stu1);
count(stu);
printf("输入欲查询的学生学号:");
scanf("%ld",&num);
search(stu,num);

void
sort(Student
stu[])

int
i,j;
Student
t;
//冒泡法排序
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(stu[j].score<stu[j+1].score)
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
//打印排序后的信息
printf("名次
学号
成绩\n");
for(i=0;i<N-1;i++)
printf("第%d名
%-6ld%-6d\n",i+1,stu[i].num,stu[i].score);

void
insert(Student
stu[],Student
stu1)

int
i,j;
for(i=0;i<N-1;i++)

if(stu1.score>stu[i].score)

for(j=N-1;j>i;j--)
stu[j]=stu[j-1];
stu[i]=stu1;
break;

stu[N-1]=stu1;

//打印插入后的信息
printf("名次
学号
成绩\n");
for(i=0;i<N;i++)
printf("第%d名
%-6ld%-6d\n",i+1,stu[i].num,stu[i].score);

void
count(Student
stu[])

long
sum=0;
int
i;
for(i=0;i<N;i++)
sum+=stu[i].score;
printf("总分:%-3ld\n平均分:%-3ld\n",sum,sum/N);

void
search(Student
stu[],long
num)

int
i;
printf("名次
学号
成绩\n");
for(i=0;i<N;i++)

if(num==stu[i].num)
printf("第%d名
%-6ld%-6d\n",i+1,stu[i].num,stu[i].score);
return;


printf("无此学生\n");

C语言代码求差错,谢谢大佬!

给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。
如:
输入:nums = [0,0,1,1,1,1,2,3,3]
输出:7, nums = [0,0,1,1,2,3,3]
我的代码如下,请问错在哪里
int removeDuplicates(int* nums, int numsSize)
if(numsSize==NULL)
return;

int i=0,x=0;
for(int j=0;j<numsSize;j++)
if(nums[i]!=nums[j]&&(j-i)==3)
i=j-1;
nums[i]=nums[j];
x++;


return numsSize-x+1;

参考技术A 语法上看没什么问题,
看起来要求输入2个参数,
实际你只输入了一个参数是不是输入少了,导致的!
参考技术B int removeDuplicates(int* nums, int numsSize)
int cnt = 0, value = nums[0], res = 0;
for(int i = 0; i < numsSize; ++i)
if(nums[i] == value) cnt++;
else cnt = 1; value = nums[i];
if(cnt <= 2) nums[res++] = nums[i];

return res;

以上是关于求c语言程序源代码,主题随便,尽量超过40行!谢谢!!的主要内容,如果未能解决你的问题,请参考以下文章

数组中有一个数字出现次数超过数组长度一半,找出这个数字(用C语言解决)。要求时间复杂度尽量小。

c语言背包问题,求高手解答

台达变频器报CE4 原因?随便问下CE一共有多少种 请尽量给全极注释!~ 谢谢

c语言求用for循环写99乘法表的代码 最后简单一点的 谢谢

C语言编程实现时间片轮转算法,尽量写得简单易懂,谢谢

C语言代码求差错,谢谢大佬!