问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言程序(在线等)

发布网友 发布时间:2022-05-27 13:22

我来回答

3个回答

热心网友 时间:2023-10-25 04:46

scanf("%f",&a[j]);
改为
scanf("%lf",&a[j]);
double输入不是%f,虽然输出可以用%f
另外你排序好像也有问题,交换的函数也不对
#include <stdio.h>

void sort(double *p);
double average(double *q);
void exchange1(double *a,double *b);
void exchange2(int *a,int *b);

int main()
{
double a[5];
double b[10];
int c[10];
for(int i=0;i<10;i++) {
printf("请输入第%d个学生的成绩:",i+1);
for(int j=0;j<5;j++)
scanf("%lf",&a[j]);
sort(a);
b[i]=average(a);
}
for(int q=0;q<10;q++)
c[q]=q+1;
for(int m=0;m<9;m++)
for(int n=0;n<9-m;n++)
if(b[n]>b[n+1]) {exchange2(&c[n],&c[n+1]);exchange1(&b[n],&b[n+1]);}
printf("一等奖是:%d:%f\n",c[9],b[9]);
printf("二等奖是:%d:%f\n%d:%f\n",c[8],b[8],c[7],b[7]);
printf("三等奖是:%d:%f\n%d:%f\n%d:%f\n%d:%f\n%d:%f\n%d:%f\n",c[1],b[1],c[2],b[2],c[3],b[3],c[4],b[4],c[5],b[5],c[6],b[6]);

return 0;
}

void exchange2(int *a,int *b)
{
int t;
t=*a;*a=*b;*b=t;
}

void exchange1(double *a,double *b)
{
double t;
t=*a;*a=*b;*b=t;
}

void sort(double *p)
{
for(int i=0;i<4;i++)
for(int j=0;j<4-i;j++)
if(p[j]>p[j+1])
exchange1(&p[j],&p[j+1]);
exchange1(&p[0],&p[3]);
}

double average(double *q)
{
double m=0;
for(int i=0;i<3;i++)
m+=q[i];
return(m/3);
}

热心网友 时间:2023-10-25 04:47

// test.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>

void sort(double *p);
double average(double *q);
void exchange1(double &a,double &b);
void exchange2(int &a,int &b);

int main(int argc, char* argv[])
{
double a[5];
double b[10];
int c[10];
for(int i=0;i<10;i++)
{
printf("请输入第%d个学生的成绩:",i+1);
for(int j=0;j<5;j++)
{
scanf("%lf",&a[j]);
}

sort(a);
b[i]=average(a);
}
for(int q=0;q<10;q++)
c[q]=q+1;
for(int m=0;m<9;m++)
for(int n=0;n<9-m;n++)
if(b[n]<b[n+1])//只是把大的放前面
{exchange2(c[n],c[n+1]);exchange1(b[n],b[n+1]);}
printf("一等奖是:%d:%lf\n",c[0],b[0]);
printf("二等奖是:%d:%lf\n%d:%lf\n",c[1],b[1],c[2],b[2]);
printf("三等奖是:%d:%lf\n%d:%lf\n%d:%lf\n%d:%lf\n%d:%lf\n%d:%lf\n",c[3],b[3],c[4],b[4],c[5],b[5],c[6],b[6],c[7],b[7],c[8],b[8]);

return 0;

}
void exchange2(int &a,int &b)
{
int t;
t=a;a=b;b=t;
}

void exchange1(double &a,double &b)
{
double t;
t=a;a=b;b=t;
}

void sort(double *p)
{
for(int i=0;i<4;i++)
for(int j=0;j<4-i;j++)
if(p[j]>p[j+1])
exchange1(p[j],p[j+1]);
//exchange1(p[0],p[3]);
}

double average(double *q)
{
double m=0;
for(int i=1;i<4;i++) //已经排好序了,就算中间三个就够了
m+=q[i];
return(m/3);
}

热心网友 时间:2023-10-25 04:47

主要问题是exchange函数,定义时参数用的是地址,但调用时形参却不是地址。
比如这句
if(b[n]>b[n+1]) {exchange2(c[n],c[n+1]);exchange1(b[n],b[n+1]);}
最好改成如下:
void exchange2(int *a,int *b)
{
int t;
t=*a;*a=*b;*b=t;
}

void exchange1(double *a,double *b)
{
double t;
t=*a;*a=*b;*b=t;
}
之后每次调用时,形参变量前加上&
比如:
if(b[n]>b[n+1]) {exchange2(&c[n],&c[n+1]);exchange1(&b[n],&b[n+1]);}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
vivox9和x9i有什么区别 ...设置原则跟构造要求。构造柱的设置原则跟构造要求是什么_百度... ...的U型钢筋锚环要几道?在哪里可以找到依据啊 ...月末不含税库存金额1065000元,请计算门店库存天数 公蟹吃什么 公蟹吃什么东西 爬行健身操功能和原理 锻炼爬行的好处有哪些呢 爬行健身法有什么优缺点 檀木如何粘合 成田剑先生还为哪些日本动漫配音,有名一点滴。谢谢了,大神帮忙啊 什么c语言程序可以多人同时在线 情侣纹身对方姓名字母 有意义的情侣纹身 一位两通电磁阀 和 两位两通电磁阀有什么区别(小弟刚学,大家不要拍砖呀) 求几个不孝的古代故事 彼岸花一株有多大 总分类账普通打印,如何把打印时间去掉? 丽泽小学郑鹏老师教母爱作文 没事的老师,我和妈妈做的事都是微不足道的,您是最辛苦的谢谢您给我展示的机会您辛苦了!这样说可以吗? 老师让写母亲节的感恩作文,就是要什么换位体验母亲的辛苦,写感受,我换了,也体验了但是我不会写作文 面积是1平方米的正方形它的边长是多少米 魔兽世界 回城问题 沙塔斯城在哪里?怎么走? 【魔兽世界】部落的前辈在外域做任务的时候炉石安在哪里的啊? 哪些歌词背后是有真实故事的? 普洛药业股现在还值得入手?普洛药业2021半年预报?普洛药业今天买当天能卖不? 普洛药业后市分析?普洛药业原始价?普洛药业下周能否涨? 普洛药业最新报道?普洛药业的价位?普洛药业手机同花顺? 普洛药业 明天怎么样?普洛药业为什么长这么好?普洛药业每年多久分红? 会出现月环食吗? 求c语言程序。在线等 C语言程序在线求助 c语言程序 在线等 汽车前挡风玻璃时间长全部是坑坑洼洼怎么修复 你了解哪种汉字起源的传说?请简要说一说 汉字的传说 系统更新之后的vivox5黑名单在哪 关于汉字简介的起源 vivo新系统20年都有哪个机型可以更新? vivo新系统怎么更新 华为的双卡双待手机,卡一卡二铃声设置那里默认的设置是怎样的?熟悉的朋友回答一下 今年下半年准备考莆田市的教师资*,差一个说课了,请问需要准备什么? 三星a7100卡1和卡2能设置成一个铃声吗 这是不是早泄 鼎记甲鱼鸡子牛鞭注册 如何在OpenGL中实现人物动画 李宁有出这款卫衣吗? opengl的角色动画程序 求一个基于OpenGL的三维角色动画的设计,给400财富 Spark it up什么意思,就是鬼泣3中但丁拿激光枪朝天喊的那句~