问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

C语言的编程题,大家谁帮帮我啊,老师出的题目,我实在做不出来啊。

发布网友 发布时间:2022-04-23 06:22

我来回答

5个回答

热心网友 时间:2023-09-11 03:11

可以考虑用结构体数组——不如你自己先想想该怎么编吧、首先、输入、该怎么输入成绩和学号、、然后、排序用什么算法?——最后、输出就简单了——要多自己思考程序的流程、最好画画流程图——

热心网友 时间:2023-09-11 03:11

#include <stdio.h>

struct student
{
int place;
int no;
int grade;
};

void input(struct student stu[],int *p)
{
int i = 1;

scanf("%d%d", &stu[0].no, &stu[0].grade);
while (!(stu[i-1].no == -1 && stu[i-1].grade == -1))
{
scanf("%d%d", &stu[i].no, &stu[i].grade);
i++;
}
*p = i;
}

void output(struct student stu[],int y)
{
int i;

for (i = 0; i < y - 1; i++)
{
printf("%d %d %d\n", stu[i].place, stu[i].no, stu[i].grade);
}
}

void set(struct student stu[], int y)
{
int i, j;
struct student temp;

for (i = 0; i < y - 1; i++)
{
for (j = i + 1; j < y - 1; j++)
{
if (stu[i].grade < stu[j].grade)
{
temp = stu[i];
stu[i] = stu[j];
stu[j] = temp;
}
if (stu[i].grade == stu[j].grade)
{
if (stu[i].no > stu[j].no)
{
temp = stu[i];
stu[i] = stu[j];
stu[j] = temp;
}
}
}
}
stu[0].place = 1;
for (i = 1; i < y - 1; i++)
{
if (stu[i].grade == stu[i - 1].grade)
{
stu[i].place = stu[i - 1].place;
}
else
{
stu[i].place = i + 1;
}
}
}

int main(void)

{
struct student stu[100];
int y;

input(stu, &y);
set(stu, y);
output(stu, y);

return 1;
}

本来人家回答过的,不好插嘴的,但是,他们的感觉或多或少没有满足要求,有的是用的c++,有的在输入的时候没有使用函数,所以,我把我自己认为更符合要求的放在这里了

热心网友 时间:2023-09-11 03:12

#include <iostream>
#define MAX_STUDENT_NUM 10
#define INCREATMENT 5
using namespace std;
struct student
{
int id; //学号
int ach;//成绩
};
void Create(student *&stu,int &n);
void Sort(student *stu,int n);
void Change(student &a,student &b);
void Print(student *stu,int n);
int main()
{
student *stu;
int stu_num;
Create(stu,stu_num);
Sort(stu,stu_num);
Print(stu,stu_num);
return 0;
}
void Create(student *&stu,int &n)
{
printf("请输入学生学号、成绩:\n");
int id;
int grade;
scanf("%d",&id);
scanf("%d",&grade);
stu = (student *)malloc(sizeof(student)*MAX_STUDENT_NUM);
int i = 0;
while(id!=-1)
{
if(i>=MAX_STUDENT_NUM)
stu = (student *)realloc(stu,sizeof(student)*MAX_STUDENT_NUM);
stu[i].id = id;
stu[i].ach = grade;
i++;
scanf("%d",&id);
scanf("%d",&grade);
}
n = i;
}
void Sort(student *stu,int n)
{
int max;
for(int i = 0;i<n-1;i++)
{
max = i;
for(int j = i+1;j<n;j++)
{
if(stu[max].ach<stu[j].ach)
max = j;
}
if(max != i)
{
Change(stu[max],stu[i]);
}
}
}
void Print(student *stu,int n)
{
for(int i = 0,rank = 1;i<n;i++)
{
printf("%d %d %d\n",rank,stu[i].id,stu[i].ach);
if(i<n-1)
if(stu[i].ach!=stu[i+1].ach)
rank++;
}
}
void Change(student &a,student &b)
{
int tempid;
int tempach;
tempid = a.id;
a.id = b.id;
b.id = tempid;
tempach = a.ach;
a.ach = b.ach;
b.ach = tempach;
}

热心网友 时间:2023-09-11 03:12

#include <stdio.h>

struct stu
{
int num;
int score;
}a[5];

void input(stu a[],int i)
{
for(i=0;i<5;i++)
{
printf("输入第%d个学生的学号和成绩:",i);
scanf("%d,%d",a[i].num,a[i].score);
}
}

void output(stu a[],int i)
{
for(i=0;i<5;i++)
{
printf("%d,%d\n",a[i].num,a[i].score);
}
}

void order(stu a[],int i)
{
int p,p1,p2;
for(i=0;i<5;i++)
{
if(a[i].score<a[i+1].score)
{
p1=a[i].score;
a[i].score=a[i+1].score;
a[i+1].score=p1;
p2=a[i].num;
a[i].num=a[i+1].num;
a[i+1].num=p2;
}
if(a[i].score==a[i+1].score)
{
if(a[i].num>a[i].num)
{
p=a[i].num;
a[i].num=a[i+1].num;
a[i+1].num=p;
}
}
}
}

void main()
{

input(a,5);
printf("原始数据:");
output(a,5);
order(a,5);
printf("排序之后的数据:");
output(a,5);
}

大致就是这样吧
希望对你有帮助

热心网友 时间:2023-09-11 03:13

#include "stdio.h"
#define MAX_NUM 2000

typedef struct _STUDENT
{
int no;
int grade;
}STUDENT;

void sort(STUDENT *stu, int len);
void output(STUDENT *stu, int len);

int main(void)
{
STUDENT stu[MAX_NUM];

int no, grade;
int i = 0;

while (scanf("%d%d", &no, &grade) && !(no == -1 && grade == -1))
{
stu[i].no = no;
stu[i].grade = grade;
++i;
}

sort(stu, i);
output(stu, i);
return 0;
}

void sort(STUDENT *stu, int len)
{
int i, j;

for (i=0; i<len; i++)
{
for (j=0; j<len-i-1; j++)
{
if (stu[j].grade < stu[j + 1].grade)
{
int swap, no;

swap = stu[j].grade;
no = stu[j].no;
stu[j].grade = stu[j + 1].grade;
stu[j].no = stu[j + 1].no;
stu[j + 1].grade = swap;
stu[j + 1].no = no;
}
else if (stu[j].grade == stu[j + 1].grade)
{
if (stu[j].no > stu[j + 1].no)
{
int swap, no;

swap = stu[j].grade;
no = stu[j].no;
stu[j].grade = stu[j + 1].grade;
stu[j].no = stu[j + 1].no;
stu[j + 1].grade = swap;
stu[j + 1].no = no;
}
}
}
}
}

void output(STUDENT *stu, int len)
{
int i;

for (i=0; i<len; i++)
{
printf("%d %d %d\n", i + 1, stu[i].no, stu[i].grade);
}
}

按你的要求写的 看看行不行!
C语言程序设计 我是C语言初学者,有一道看程序的题我有些弄不懂,还请...

答案:C A:是如果a&gt;b,则一程序一直执行到“b=c;”,效果是换a与b的值;B:是如果a&gt;b,则执行{ }里的语句,效果是交换a与b的值;C:是如果a&gt;b,则执行c=a; 无论a是否大于b,c的值都要给a,a-b;没什么作用;D:是如果a&gt;b,则效果是交换a与b的值,c相当于中转站,a-b;没什么作...

C语言练习 求大师帮我看看错误在哪里,/(ㄒoㄒ)/~~半天搞不出来!

当一个实数 按照float存储的时候 会存成一个近似数 这个就是精度问题 比如 如果输入一个 1.23 可能实际存的是1.23000002 这样按照你的写法 输出的就不是 1 23 而是1 23000002 所以这个题的思路 是不能直接存成float的 而是直接存成int 如果确定输入中有小数部分那么 scanf("%d.%d", &amp;x, &amp;y)...

C语言编程题,急,请大家帮忙啊,不会的也试试啊,急

1.include"stdio.h"defineL100 defineU200 defineFACTOR5 voidmain(){inti;printf("%5d之间%5d不能被%5d蒸出的数如下:\n",L,U,FACTOR);for(i=L;i&lt;=U;i++)if(i%FACTOR)printf("%-4d",i);} 2.include"stdio.h"voidmain(){ intx[12]={2,45,67,12,3,9,76,45,23,42,6,5}...

一道相当棘手的C语言题目,希望朋友们帮帮我

第一层:x=3 if 语句成立,进入第二层 第二层:x=1 if 语句不成立 输出 x=1 第二层结束,返回第一层 输出x=3 第一层结束,放回主函数

有几道C语言题请大家帮我解答一下,各位哥哥姐姐帮帮忙啊!小弟感激不...

1. 变量名 2. 逗号表达式,其值取最后一项。78/5 = 15(小数部分不要)3.选A,--x相当于x=x-1;4.321。求余运算 5.printf("格式控制", [输出参数1,...])scanf("格式控制", [&amp;输入参数1,...])6.没题目

C语言程序设计题,哥哥姐姐帮帮我 啊

请输入一个不大于5位的数字:1234 这是一个4位数 逆序输出:4 3 2 1 其他3位,2位,1位的效果同上。源程序如下:include&lt;stdio.h&gt; main(){ int a;printf("请输入一个不大于5位的数字:\n");scanf("%d",&amp;a);if(a/10000){printf("这是一个5位数\n");printf("逆序输出:%d %d...

C语言编程,1到100,求质数,谁能帮帮我啊,网上找的,不完整,看不懂,毫无...

return 0; } return 1;}int main(){ int i,k=0; printf("1至100之间的素数从小到大分别为:\n"); for(i=2;i&lt;=100;i++) { //依次判断所有数字是否为素数 if(f(i)) { k++; printf("%d\t",i); } } printf("\n总共%d个。\n",k ); return 0;} ...

求帮忙~计算机C语言的编程题!大学选的辅修课没去过,要考试了不会呀...

有些题别人已经给出了,我引用一下啊(懒得重写了),大家不要喷我哦~~~第一题 include&lt;stdio.h&gt; int main(){ int d1,d2,d3,n=253;d1=n%10;d2=n/10%10;d3=n/100%10;printf("253的:\n个位数为%d\n十位数为%d\n百位数为%d\n",d1,d2,d3);return 0;} 第二题 include&lt;s...

我是大一的学生 老师让我们做一个c语言课程设计 现在给出三道 希望大家...

我是大一的学生 老师让我们做一个c语言课程设计 现在给出三道 希望大家 帮帮忙 编写一个工资管理的程序。这边的是第二和三题编写一个学生成绩管理的程序。由键盘输入数据(最好要考虑输入数据输入的格式及输入数据的有效性),然后进行以下的功能实现。程序要求主函数是一个功能选择菜单,... 这边的是第二和三题...

求C语言编程大佬帮忙!这道题的逻辑哪里出错了!找了几个小时了没搞明白...

思路如下:这个问题实际上是生成0~9的全排列,然后根据每个数在格子里的位置判断每个排列是否符合要求。百度了一个全排列算法稍做修改,得到以下代码,输出的有效方案数是1580,在我这里输出大约在70ms到100ms左右。百度这个代码排版垃圾得无以复加,vs里面排得好好复制过来全乱,不再重排了。另外,生成...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
贸然的打扰什么意思 打扰您了的短语 贸然打扰什么意思 选择条纹T 恤搭配高腰长款西装阔腿裤时,需要注意什么? 蓝白条纹连衣裙上用84洗染成了红色,请问有什么方法可以洗掉吗?注意... 蓝白条纹的纯棉的T恤染上几点红色,该怎么洗?? 2022年卡塔尔世界杯乌拉圭vs韩国谁会赢 乌拉圭vs韩国比赛结果预测_百度... 经济制度在经济体制改革和经济发展中的影响 我国基本经济制度起到了什么作用 我国基本经济制度作用简述 本人在计划生育的时候放环到现在已有10年了,也没感觉什么的,要取出来吗... 炫酷霸气帅气昵称有哪些? nvsip远程视频监控为什么到家里没用了啊 C语言题目不会做? 戒掉烟后身体会有个怎样的过程? 女生用的帅气网名 网络安全容易学么? 塑胶厂里生产的橡胶手机按键有毒吗 水果如何搭配营养 用nvsip网络摄像头在电脑上看时,没过几分钟提示和服务器连接断开,您已被退出是什么情况,这是什 学了没多久C语言,课后练习题完全不会。。怎么办?有没有好一点的学习方法和诀窍 戒烟以后,怎样调理肺部才能恢复正常? 橡胶制的手机链脏了该怎么清洗 给女生取个帅气的名字 C语言编程问题,初学者,不太会,谢谢 戒烟后如何尽快恢复身体 水果怎么吃营养 水果营养搭配原则 网络安全要学多久才能就业? nvsip远程监控只能使用局域网,联网显示“未上线”是怎么回事? LOGO设计要公司怎么选? c语言编程题,我不会啊,求解 手机nvsip远程监控为什么在店里用wifi能连上,而换个网就显示连接超时,连不上 什么水果最有营养 c语言怎么学啊?怎么编程的题都不会做啊!高手支支招吧!(可以详细点啊) 水果营养 多种 两个字的女生QQ网名,帅一点的,伤感,霸气的也行,急!在线等 c语言编程题,不会做,求各位高手帮帮忙 突然戒烟对身体有害吗怎么样戒烟好 闪银的APP好用吗,到底怎么样啊? nvsip手机应用“本地模式暂停使用”是怎么回事?手机上无法连接是为何?网络很好不是网的问题。 如何知道QQ好友ip地址? C语言编程题完全不会 安卓模拟器上 nvsip怎么连接不到网络? 使用不了呢 求大神回复 闪银这个平台好借钱吗?有没有借过的? c语言程序设计题不会做 qq聊天怎么看对方ip 用NVSIP连接摄像头配置成功了,但是一点进去就提示用户名或密码错误如下图,怎么办啊?求大神指点 这些c语言编程题都不会。求指导 吸食香烟会如何影响身体?戒烟后的好处有哪些? C语言编程题,不会! 好几个同事都说闪银挺好的,到底怎么样啊?
  • 焦点

最新推荐

猜你喜欢

热门推荐