C语言编程高手请进~~~~~请一定要帮帮忙,万分感谢~~~~~!!!!!!!小虾米自己实在是能力有限,谢谢各位

作者&投稿:荤嘉 (若有异议请与网页底部的电邮联系)
C语言高手请进!!!(还有追加分~~~~~~)~

/*
输入一个班M个学生N门课程的成绩,计算出每门课程全班的平均分,最高分,最低分,及格率和优秀率.
(学生人数M,课程数N及所有分数均由键盘输入.)
问题补充:没有用到类,用循环语句的.
*/

#include


void main(void)
{
float s[100][20]; /*最多可容纳100学生的20门成绩*/
float a[20][5]; /*a[][0]20门课的平均分 a[][1]最高分 a[][2]最低分 a[][3]及格率 a[][4]优秀率*/
int m,n,i,j;
printf("enter student number M:");
scanf("%d",&m);
printf("enter student curse number n:");
scanf("%d",&n);
for(i=0; i<m; i++)
{
printf("
enter student %d ",i+1);
for(j=0; j<n; j++)
{
printf("
curse %d:",j+1);
scanf("%f",&s[i][j]);
}
}


for(j=0; j<n; j++)
{
a[j][0]=0; /*平均分*/
a[j][1]=s[0][j]; /*最高分*/
a[j][2]=s[0][j]; /*最低分*/
a[j][3]=0; /*及格率*/
a[j][4]=0; /*优秀率*/
for(i=0; i<m; i++)
{
a[j][0]+=s[i][j];

if(s[i][j]>a[j][1]) /*最高分*/
a[j][1]=s[i][j];

if(s[i][j]<a[j][2]) /*最低分*/
a[j][2]=s[i][j];

if(s[i][j]>=60) /*及格率*/
a[j][3]++;

if(s[i][j]>=90) /*优秀率*/
a[j][4]++;

}

a[j][0]/=m; /*平均分*/
a[j][3]=a[j][3]/m*100; /*及格率*/
a[j][4]=a[j][4]/m*100; /*优秀率*/
}

for(i=0; i<n; i++)
{
printf("
course %d average: %.f top score=%.f low score=%.f
up_rate=%.f good_rate=%.f",i+1,a[i][0],a[i][1],a[i][2],a[i][3],a[i][4]);
}
}

虽然觉得你给的三个条件有点混乱,但是还是按照其编写出如下代码。

#include

int main()

{
int score[5]={0};
int sum = 0;
int i = 0;

printf("Please input the score of student(enter after each input and start with s1):
");

for(i=0; i<5; i++)
{
scanf("%d", &score[i]);
sum += score[i];
}

if(sum < 450)
{
printf("Sorry, you can not get the scholarship.
");
return 0;
}
if(score[0] < 88 || score[1] < 88 || score[2] < 88 || score[3] <88 || score[4] < 88)
{
printf("Sorry, you can not get the scholarship.
");
return 0;
}
if(score[0] < 95 || score[1] < 95 || score[2] < 95 || score[3] <80 || score[4] < 80)
{
printf("Sorry, you can not get the scholarship.
");
return 0;
}

printf("Congradulations! You will get the scholarship!
");

}

第1题题目表述不清,普通的二叉树的合并没有任何意义,如果是二叉排序树还差不多。若非要进行普通的二叉树的合并,只要将一个树的插入到另一个树的度非2的结点上,最简便的做法是沿着另一个树的根一直遍历到左子树的叶子结点,不过这没有意义。要是这样的话,此题太简单了,自己实现吧!!
第2题
(1)排序结束的最基本即最保守的条件是:进行n次奇偶交换操作。
还有一个是针对本来就基本有序的情况,如果在n次循环中,有两次没有交换操作,则停止排序,因为此时必有序!
故综合起来为:当有两次没有交换操作或进行了n次奇偶交换时,排序结束。
(2)源代码
#include<iostream>
#include<string>
using namespace std;

void OddEvenSort(int* p,const int& size)
{
int k=-1;
for(int i=0;i<size;++i)
{
int j=i%2;
for(;j<size;j+=2)
if(j+1<size&&p[j]>p[j+1])
{
++k;
p[j]=p[j+1]^p[j] , p[j+1]=p[j]^p[j+1] , p[j]=p[j+1]^p[j] ;//交换
}
if(i-k==2)
break;//两次没有交换,排序停止
}
}

void PrintArray(int* p,const int& size)
{
for(int i=0;i<size;++i)
{
cout<<p[i]<<'\t';
if((i+1)%8==0)
cout<<endl;
}
cout<<endl;
}
void main()
{
int size=0;
int *p=0;
cout<<"Enter the size of an array!"<<endl;
cin>>size;
p=new int[size];
cout<<"Please input the elements!"<<endl;
for(int i=0;i<size;++i)
cin>>p[i];
OddEvenSort(p,size);
cout<<"After the sortion,the array is:"<<endl;
PrintArray(p,size);
delete[] p;
}

1 找到A的底层的指针Rnext或Lnext把B的头指针headb赋给Rnext或Lnext,
unitab(struct heada,struct headb)
{
while(*heada->Rnext)heada = Rnext;//加入右叉
heada->Rnext = headb;
}

2,结束条件是不再有交换发生。。标志um

void pxu(int a[])
{
int temp;
int um = 1;//交换标志
while(um){
um = 0;
for(int i=0;(i*2+2)<N;i++)//N数组的长度
{
if(a[i*2+1]>a[i*2+2])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
um = 1;
}
}
for(int i=0;(i*2+1)<N;i++)
{
if(a[i*2]>a[i*2+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
um = 1;
}
}
}
}


C语言编程问题,高手请进,急问!
我觉得你这题目描述有问题,判断有没有键被按下,到底是在多少的时间内有没有键被按下???比如在1秒内没有按键,但不能保证下1秒还是没有按键,难道就一直的等下去?如果是在一些开发环境中,可以将判断按键是不是为回车写在OnKeyPress事件上。下面只给出一个输出按的什么键的程序 int getkey(){...

高手请进!关于C语言编程,请教一下!
include "stdio.h"int main(){ char ch;ch=getchar();if(ch>'a'&&ch<'z')printf("%c%c%c\\n",ch-1,ch,ch+1);else printf("Input ERROR");return 0;} 望楼主采纳

C语言高手请进!!!急!!
while(a=10);这里赋值号=,不是判等的== 每次都是a赋值为10 循环本身是个死循环,所以只有到y>30成立时,才会退出循环 才是a值为12 b值为0+10+12+12==34

perl 语言高手请进~~~ 编程
答复补充:你可以跑一下程序,看结果怎样 含标点符号也没问题,我原来以为这会影响单词数的统计,因为split分割一般不会用很复杂的语法,我这里只用了空白来分隔,但是又一想你又不需要得到每一个确切的单词,比如说文本中一行是: Hello World!那么数组中存的两个单词分别是 Hello和World!但单词统计仍...

C语言编程问题.请高手进(附源码)!!!HELP
default:printf("输入错误,请重新打开程序输入!");} } void fcxxwh(void){int a,b,c;printf("1.录入\\t");printf("2.修改\\t");printf("3.删除\\t");printf("\\n请输入所需要的功能:");scanf("%d",&a);switch(a){case 1:printf("请输入录入次数:");scanf("%d",&b);\/\/---&b...

pascal编程问题,高手请进!
1. n mod 3 2. 2 * Pi * r 或 Pi * d 假设半径为r, 直径为d, Pi是Pascal内置的常数 3. age > 50 假设年龄为age 4. (n mod 5 = 0) and (n mod 3 = 0)其实 n mod 15 = 0 就可以了, 不过不知道这道题想考什么 5. (y mod 4=0)and(y mod 100<>0)or(y mod 400...

c语言问题,高手请进谢谢!!!
1、++i 时i加1得到i,此时的i=2;2、++i 时i加1得到i,此时的i=2+1=3;3、此时前面有两个i等待运行,即i+i--->这两个i些时都是3;而不是一个2,一个3;4。再一个++i 此时i加1得到i,i=3+1=4;由上面的理解知道i此时已经是4,5、由上面四步得到一个i=4,i+i+i的式...

我狂想学电脑编程.电脑编程高手请进.
最经典的:《C程序设计语言》第2版,机械工业出版社 这个是C语言的设计者和UNIX系统的设计者合作编写的最经典的C语言教材,原书名叫《The C Programming Language》当然,这本书不太适合0起点的人,看这本书之前最好把《C程序设计》(谭浩强,清华大学)看了,老谭的书销量突破700万册了,虽然比较旧...

c语言高手请进
\/\/--- include <stdio.h> include <stdlib.h> typedef struct{ \/*老师信息结构体,为了调试方便,只有一个编号域,可以自己添加其它的成员*\/ int ID;} Teacher;typedef struct node{ Teacher th;struct node *next;} Node;typedef struct { Node *top;int cnt;} Head;void getteacher(Teach...

C语言高手请进,在线等
我用的WIN-TC编译器,有几个地方改下就行了。这应该不是do-while的问题,应该是scanf的问题。1、y,Y不用定义。2、scanf要清除下缓存 3、 scanf("%s",&op)这应该是scanf("%c",&op)4、就是楼上说的,大小Y的问题 我改的程序如下:include<stdio.h> void main(){int a,b,z;char op,...

岑巩县15165604893: 求C语言程序,高手请进... -
茆矿羚黄: /*1.输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串 原字母 对应字母 A Z B Y C X D WX C Y B Z A*//*#include <stdio.h> void main() {char str[80];char ...

岑巩县15165604893: c语言高手请进 -
茆矿羚黄: 提个建议,最好不要用GOTO语句,这样很容易引起内存错误

岑巩县15165604893: C语言高手请进 -
茆矿羚黄: double Mean(double a[M][N],int m,int n){int i = 0, j = 0;double V;for(i = 0; i < m; i++) for(j = 0; j < n; j++) V += a[i][j];V /= (m * n);return V;}int MM(int a[ ],in...

岑巩县15165604893: c语言编写 高手请进
茆矿羚黄: #include <stdio.h> int main() { int c,t; int suit; double sum; scanf("%d%d",&c,&t); suit=c>=t?t:c; sum=suit<50?suit*90:suit*80; if(c-suit>0) sum+=60*(c-suit); else if(t-suit>0) sum+=45*(t-suit); if(sum>10000) sum=(sum-10000)*0.9+10000; printf("付款总额=%.3lf\n",sum);return 0; }

岑巩县15165604893: 高手请进C语言编程
茆矿羚黄: #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;windows.h&gt; void delstr(char *str); int main(void) { char str[256]; printf("输入一行字符串:\n"); while(gets(str)) { delstr(str); printf("%s",str); //看清光标位置,不然看不出效果 ...

岑巩县15165604893: C语言高手请进
茆矿羚黄: 给你一个 你想打印任意行的 你的那种个图形: #include<stdio.h> #include<math.h> int main() {int i,j,k,n; printf("请你输入你要打印的行数\n"); scanf("%d",&n); for(i=-(n/2);i<abs(n/2)+1;i++) { for(k=0;k<-abs(i)+abs(n/2);k++) printf(" "); for(j...

岑巩县15165604893: C语言高手请进!!!!
茆矿羚黄: 第一个VOID代表MAX的函数返回值为空,也就是这个函数不需要返回值,后面的那个VOID表示这个函数调用的参数为空,也就是不需要调用参数.如果这样还不明白的话,可以举个例子. void main(void) { max; } 这个函数就是直接执行max里...

岑巩县15165604893: C语言编程题,高手请进 -
茆矿羚黄: char* fun2(char** aa, char* r, int m, int n){ int index = 0; for(int i=0;i<n;i++){ for(int j=0; j<m;j++){ r[index] = aa[m][n]; index++; } } return r;}

岑巩县15165604893: 高手请进!求一个简单的C语言编程
茆矿羚黄: 成绩管理的 #include<stdio.h> #include<Windows.h>/*后面关闭程序需要调用此头文件*/ #include<string.h> #define N 10/*定义学生的个数*/ typedef struct/*结构体*/ { char number[20];/*定义学生的学号*/ int grade[4];/*定义学生的四门成绩,这里...

岑巩县15165604893: c语言高手请进
茆矿羚黄: 首先中间的x不能取1,因为数字不能重复出现,也不能为9. 即最小为2,所以第一个数最大为4987,最小为1234,因为不能进位. # include<stdio.h> int main(void) { int i,j,n; for(i=1234;i<4987;i++) for(j=2,j<9) {n=i*j; if((i%10)!=j&&((i/10)%10)!=j...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网