一个c语言的题,求各位大佬帮帮忙

试题描述

输入N个学生的C语言程序设计课程成绩,请你设计一个函数来编程找出这些学生的最高分、并列第一的学生数。
函数原型:int search(int x[], int n, int *count);

输入

输入包含两行:
第一行是N(0 < N < 1000)。
第二行是N个整数,代表N个学生的C语言程序设计课程成绩,邻近两数之间用一个空格隔开。

输出

按照题目要求输出最高分和取得最高分的学生数,用一个空格隔开。

输入示例

10
52 95 87 69 78 84 82 95 90 95

输出示例

95 3

数据范围

输入和输出均为int范围的整数,对于100%的数据,0 < N < 1000

第1个回答  2018-12-04
int search(int x[], int n, int *count)
{
int i,m=*x;
*count=1;
for(i=0;i<n;i++)
{
if(m<*(x+i))
{
m=*(x+i);
*count=1;
}
else if(m==*(x+i))(*count)++;
}
return m;
}
main()
{
int x[100],n,count,i;
scanf("%d",&n);
for(i=0;i<n;i++)scanf("%d",x+i);
printf("%d %d\n",search(x, n, *count),count);
}追问

你好请问*count为什么可以直接赋值呢

我听同学说指针变量不能直接赋值,除了0以外

追答

*count可以直接赋值。但需要有条件。

字符型指针先指向一个已经定义过的字符变量或字符数组。
数字型指针先指向一个已经定义过的字符变量或字符数组。

以上两种情况,必能用*count形式赋值。除此之外的情形就不一定了,大多不能赋值。

另外,你同学说的只能赋值0是错误的。

如果能赋值,包括0都能赋值;如果不能赋值,0也不例外。

追问

好的谢谢!

本回答被提问者和网友采纳

C语言问题,求大佬解答
如果( 甲 大于 0 ){ 和 += 甲;如果(个数 < 最大输入个数) 输入数[个数 ++] = 甲;} }直到 甲 等于 0;图形输出词语(“输入的正整数个数为:”);图形输出整数(个数,10);图形换行();平均值 = 和 除 个数;图形输出词语(“输入正整数的平均值为:”);图形输出小数(平均值...

C语言程序设计(201803)测试求大佬帮忙!
选C;函数实参可以是常量、变量或表达式,该题中逗号表达式(exp2,exp3)返回exp3,(exp4,exp5,exp6)返回exp6,因此一共3个实参 选C;A错误,函数调用时不用指明其参数类型;B错误,fun函数没有返回值,不能赋给k;C正确;D错误,函数调用时不用指明其返回类型 选A;n++表示先返回n的值,再对...

C语言题目,求大佬解答
答案B

一个C语言指针问题。求大佬解答?
在这个程序中,我们首先提示用户输入方阵的尺寸,然后输入方阵的元素。接着,我们通过遍历方阵的每一行,并使用指针指向每行对应列的元素,来求出方阵对角线元素之和。最后,我们输出结果。程序的输出示例如下:include <stdio.h> int main(){ \/\/ 方阵的尺寸 int n;printf("Enter the size of the m...

c语言简单程序题把我搞糊涂了 求大佬解疑
第一张图片:根据优先级,先算++,但由于加加在后面,所以返回加加前的值,也就是7。再算等号,赋值给sum,此时sum就是7。然后轮到逗号,逗号之后是sum自加,得8。然后再到下一个num自加,但跟sum已经没有关系了。所以答案是8。第二张图片:由于括号的原因,等号优先级低,所以先算括号里的值...

c语言问题,麻烦大佬帮忙看看
x是输出十六进制数的意思,故题目需要你进行十六进制运算,不过是把十六进制的194与十进制的18相加而已,可以统一转换进制为十六进制,然后运算,不需要进位。运算过程是:0x194+18==0x194+0x12 而 0x194+0x12==0x1A6。下面的watch框是验算

c语言题目 求大佬
后缀自增\/自减表达式的值就是变量的当前值。例如有变量b=4,则表达式b++的值也是4。执行自增\/自减表达式之后,变量的值变为原值+1\/-1。这称为自增\/自减表达式的副作用。例如有变量b=4,执行表达式b++后,b的值变为5。第一道题求的是执行完表达式a++和b++后变量a和b的值,而第二道题求...

c语言问题,求大佬帮忙
type!=3){ ALL_Price=current_ml*(1-serve[serve_type].reduce)*oil[oil_type].price;printf("你的服务: %s,油: %s\\n",serve[serve_type].type,oil[oil_type].type);printf("总价格为%.2f,Welcome\\n",ALL_Price);} };int main(int argc, char* argv[]){ int weight_kg=0;...

C语言题目 求大佬帮看一下
首先说一下题目的答案是:11 程序运行了一下, 截图如下:下面解析一下原因:1、根据判断条件来看,当 k = 10时, while 条件不成立。2、但是需要注意的一点是,在while条件中,使用的是 K++, 而++符号在后面。3、++运算符使用有两种, 先+1在用, 和先使用在+1。而此处使用的明明是后者。4...

c语言简单编程,如图题目,求大佬。
人数固定可以使用数组来做 在循环中输入学生成绩直到输入的成绩为负数时结束(当然如果你故意输入超过数组长度的的个数的话要处理下不要越界了,如果你故意要这么干的话。。。)然后遍历数组找出相应数据即可 如果代码不想自己写的话 我可以有偿代劳 ...

相似回答