C语言中函数调用出错问题的解决方法,主函数中的函数参数问题 5C

最后的主函数中的Locatei(&Q)一直提示参数不够,但我添加了指向pos的整型变量并赋值给i后仍不能成功,我现在不知道是调用错了还是那里的问题,求解答啊!

include

include

include

#define ERROR 0
#define OK 1
#define RL 200

typedef struct{
char *name[RL];
char *phonenum[RL];
char *add[RL];
int TD_length;
}telephoneDirectory;

int creat_telephoneDirectory(telephoneDirectory *P, int Length)//创建电话簿
{
int i;
for (i = 0; i P->phonenum[i] = (char *)malloc(20 * sizeof(char));
printf("电话号码%d:", i + 1);
scanf("%s", P->phonenum[i]);
P->name[i] = (char *)malloc(Length * 20 * sizeof(char));
printf("姓名%d:", i + 1);
scanf("%s", P->name[i]);
P->add[i] = (char *)malloc(Length * 20 * sizeof(char));
printf("家庭住址%d:", i + 1);
scanf("%s", P->add[i]);
}
P->TD_length = Length;
return OK;
}

/*int Locatei(telephoneDirectory p,int *pos)//查找操作
{
int i;
char LC_name[20] = { '\0' };
printf("请输入要查找的人物姓名: ");
scanf("%s", LC_name);
while (i<=p->TD_length&&p->name[i]! = LC_name);//元素依次比较
Inserti(p); //调用插入算法,将新的用户信息插入到数组中
i++;
if(i<=p->TD_length){ //找到
*pos = i;
PrintfP(p,p->phonenum[i],p->name[i],p->add[i]); //调用输出算法,输出找到的这组信息
}
return OK;
}
/

int Inserti(telephoneDirectory *P)//插入操作
{
int i, j;
char CR_phone[20] = { '\0' }, CR_name[20] = { '\0' }, CR_add[20] = { '\0' };
printf("请输入插入位置:");
scanf("%d", &i);
if (iP->TD_length + 1) return ERROR;
printf("请输入插入的电话号码:");
scanf("%s", CR_phone);
printf("请输入插入的姓名:");
scanf("%s", CR_name);
printf("请输入插入的家庭住址:");
scanf("%s", CR_add);
P->phonenum[P->TD_length] = (char *)malloc(20 * sizeof(char));
P->name[P->TD_length] = (char *)malloc(20 * sizeof(char));
P->add[P->TD_length] = (char *)malloc(20 * sizeof(char));
if (!P->phonenum[P->TD_length] || !P->name[P->TD_length] || !P->add[P->TD_length]) return ERROR;
for (j = P->TD_length; j >= i; j--){
//P->phonenum[j]=P->phonenum[j-1];
//P->name[j]=P->name[j-1];
strcpy(P->phonenum[j], P->phonenum[j - 1]);
strcpy(P->name[j], P->name[j - 1]);
strcpy(P->add[j], P->add[j - 1]);
}
strcpy(P->phonenum[i - 1], CR_phone);
strcpy(P->name[i - 1], CR_name);
strcpy(P->add[i - 1], CR_add);
P->TD_length++;
return OK;
}

int Deletei(telephoneDirectory *P)//删除操作
{
int i, j;
printf("请输入删除位置:");
scanf("%d", &i);
if (iP->TD_length) return ERROR;
for (j = i; j <= P->TD_length; j++){
P->phonenum[j - 1] = P->phonenum[j];
P->name[j - 1] = P->name[j];
P->add[j - 1] = P->add[j];
}
P->TD_length--;
return OK;
}

int Sorti(telephoneDirectory p)//排序操作
{
int i,j;
char temp;
for(i=0;i<=p->TD_length;i++){
for(j=0;j<=p->TD_length-j-1;j++){
if(p->phonenum[i]>p->phonenum[i+1]){
temp=*p->phonenum[i+1];
p->phonenum[i+1]=p->phonenum[i];
p->phonenum[i]=&temp;
/
按照输入人物的名字排序
if(p->name[i]>p->name[i+1]){
temp=p->name[i+1];
p->name[i+1]=p->name[i];
p->name[i]=temp;
/
/
按照输入人物的家庭住址排序
if(p->add[i]>p->add[i+1]){
temp=p->add[i+1];
p->add[i+1]=p->add[i];
p->add[i]=temp;
*/
}
}
}
return OK;
}

int PrintfP(telephoneDirectory *P)//输出
{
int i;
printf("电话簿目前存储数量为:%d\n", P->TD_length);
for (i = 0; iTD_length; i++){
printf("电话号码%d:%s 姓名%d:%s 家庭住址%d:%s\n", i + 1, P->phonenum[i], i + 1, P->name[i], i + 1, P->add[i]);
}
return OK;
}

int Locatei(telephoneDirectory *p,int *pos)//查找操作
{
int i;
char LC_name[20] = { '\0' };
printf("请输入要查找的人物姓名: ");
scanf("%s", LC_name);
while (i<=p->TD_length&&p->name[i] != LC_name);//元素依次比较
Inserti(p); //调用插入算法,将新的用户信息插入到数组中
i++;
if(i<=p->TD_length){ //找到
*pos = i;
PrintfP(p); //调用输出算法,输出找到的这组信息
}
return OK;
}

int main()
{
int length, operation;
telephoneDirectory Q;
printf("创建电话簿\n\n请输入电话簿用户数量:");
scanf("%d", &length);
creat_telephoneDirectory(&Q, length);
while (1){
printf("请选择您想对电话簿进行的操作:\n1、locate(查找).\n2、delete(删除).\n3、insert(插入).\n4、sort(排序).\n5、printfP(输出).\n6、end(结束).\n\n");
printf("请选择您要进行的操作:");
scanf("%d", &operation);
printf("\n");
if (operation == 6) break;
if (operation == 5){
PrintfP(&Q);
}
if(operation == 4){
Sorti(&Q);
}
if (operation == 3){
Inserti(&Q);
}
if(operation == 2){
Deletei(&Q);
}
if (operation == 1){
Locatei(&Q);
}
}
// free(&Q);
return 0;
}

3个回答

Locatei(&Q);函数是两个参数,你起码要写俩吧。

int iPos = -1;
Locatei(&Q, &iPos);

yangbo50304
yangbo50304 回复xwhqsj: 把你代码用代码的格式贴出来,要不看不全。
4 年多之前 回复
xwhqsj
xwhqsj 不行啊,仍然有问题。而且应该是整型指针吧
4 年多之前 回复

在if(Opertate == 1) 时调用Locatei函数参数中少了一个参数pos。

xwhqsj
xwhqsj 我知道需要pos啊,但是我写进去都不对啊
4 年多之前 回复

int Locatei(telephoneDirectory *p,int *pos)//查找操作
-- 需要两个参数,你要提交对应的参数类型

xwhqsj
xwhqsj 这个我知道啊,但是不知道怎么写啊
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c语言关于主函数调用子函数实现特定功能

题目有3个题目 1.编写一个函数进行2个数值之间的加,减,乘,除运算,并将结果返回。 2. 输出下面的长方形图形要求可以指定行和列 3. 设某班学生5人信息分别为姓名、性别、成绩{“zhang”,‘m’,78}{“wang”,‘w’,66}{“yang”,‘m’,56}{“li”,‘m’,85}{“qian”,‘w’,93}求全班的平均成绩 。这些我都可以写出来,但是要求主函数调用这3个子函数来实现特定的功能。 求大神帮忙

c语言 函数调用指针并修改 但主函数的指针地址没有变化 (strchr函数)

char *my_strchr(char const *str,int ch) { char *flag=NULL; for(;(str=strchr(str,ch))!=NULL;str++)flag=str; return flag; } int main() { char *str="hello"; printf("%x\n",my_strchr(str,'l')); printf("%x\n",my_strchr(str,'h')); return 0; } 输出结果:40306b 403068 my_strchr()函数用于输出ch最后一次出现的地址. 但是!!!!my_strchr()函数在使用的时候不是移动了str的位置么,指向了'l'的地址,这时str的位置移动到'l'了,为什么在main中第二次调用查找'h'的时候还可以用呢?

C语言中函数数组调用问题

定义的二维数组为全局变量,在主函数中有多个子函数要用到它。请问下大家,子函数中计算的此二维数组的值间能传递么?还是也需要调用呢?~~

C语言中函数调用参数的问题......

for (ctr = 0; ctr <= numMov; ctr++) { printf("请输入电影的名字\n\n"); scanf_s("%c", namMov); printf("请对该电影进行评分!\n\n"); scanf("%d", &rating); if (rating>fisRating) { strcpy_s(favorite, namMov); -- 程序在此指出错误:函数调用中的参数太少 fisRating = rating; 请问应该怎么解决???

c语言如何在子函数读取主函数中的数组

要一次性全部读取这个数组,不需要改变数组。 比如我有个数组a【10】。我想一次性在子函数中读取a从1到10的所有字符。如果不通过指针,可以用变元传递嘛

请教#c语言,主函数中调用哪里出错?

程序无法运行,请问主函数中要如何正确调用f函数呀 ``` #include <stdio.h> double f(int n,double a[],double x) { int i; double p=a[n]; for (i=n;i>0;i--) { p=a[i-1]+x*p; } return p; } void printf_f(double p) { printf("%f",p); } int main() { int n=2; double p,a[]={1,2},x=4; p=f(n,a[1],x); printf_f(p); return 0; } ```

c语言函数嵌套调用疑惑

/* 显示unsigned型的位串 */ #include <stdio.h> // 返回在整数x中设置的位数 int count_bits(unsigned x) { int count = 0; while (x) { if (x & 1U) count++; x >>= 1; } return (count); } // 返回unsigned型的位数 int int_bits(void) { return (count_bits(~0U)); } // 显示unsigned型的位串内容 void print_bits(unsigned x) { int i; for (i = int_bits() - 1; i >= 0; i--) putchar(((x >> i) & 1U) ? '1' : '0'); } int main(void) { unsigned nx; printf("请输入一个非负整数:"); scanf("%u", &nx); print_bits(nx); putchar('\n'); return (0); } 在自学c语言,有一个小程序看不懂了,来请教大家main函数调用print_bits函数,print_bits函数在调用int_bits函数到这一步就看不懂了大家能给仔细 讲讲这个函数?

内部排序的性能分析:函数调用的问题?在主函数中用一种方法排序后,排好序的顺序表被带回主函数,再用另一种方法排序等于没用了

原先用的void insertsort(Sqlist &L),改成void insertsort(Sqlist L)还是不行,形参不是传值调用主函数不会改变嚒? 已经测试排序的代码没有问题,单独使用一种方法没有问题,几种同时使用才会出问题, ![图片说明](https://img-ask.csdn.net/upload/201912/09/1575891779_129272.png) 第一行:随机生成的顺序表 第二行:Insert排序后的顺序表 第三行:比较次数,移动次数 第四行:Shell排序前的顺序表 第五行:Shell排序后的顺序表 可以看出shell根本不需要排序,移动次数为0...... 代码太长截取一部分有用的: ``` #define _CRT_SECURE_NO_DEPRECATE #include<stdio.h> #include<stdlib.h> #include<time.h> typedef int Position; typedef int ElemType; typedef int Status; int compare1=0,compare2=0,compare3=0,compare4=0,compare5=0,compare6=0;//比较次数 int move1 = 0, move2 = 0, move3 = 0, move4 = 0, move5 = 0, move6 = 0;//移动次数 ElemType*p, *q; #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define OK 1; #define TRUE 1; #define FALSE 0; #define ERROR 0; #define OVERFLOW -2; /*①SqList.h线性表的动态分配顺序存储结构*/ typedef struct { int key; }lkey; typedef struct { lkey *elem; int length; int listsize; }SqList; /*②顺序表基本操作接口定义*/ //操作结果:构造一个空的线性表 Status InitList_Sq(SqList &L); //操作结果:在L中第i个元素之前插入新的元素e,L的长度加1 Status ListInsert_Sq(SqList &L, int i, ElemType e); //操作结果:依次对L的每个数据元素调用(*visit)(),一旦(*visit)()失败,则操作失败 Status ListTraverse_Sq(SqList L, Status(*visit)(ElemType)); //将元素e的值打印出来 Status visit_sp(ElemType e); //直接插入排序 void InsertSort(SqList L); //希尔排序 void ShellSort(SqList L, int dlta[], int t); void Shell(SqList L, int dk);//一趟希尔插入排序 //起泡排序 void BubbleSort(SqList L); //快速排序 void QuickSort(SqList L); void Quick(SqList L, int low, int high); int QsortPartion(SqList L, int low, int high);//一趟快速排序 //简单选择排序 void SelectSort(SqList L); //堆排序 void HeapSort(SqList L); void HeapAdjust(SqList L, int s, int m);//建大顶堆函数 //随机生成数构造线性表 Status InitList_Sq(SqList &L) { int i; L.elem = (lkey*)malloc(LIST_INIT_SIZE * sizeof(lkey)); if (!L.elem)exit(-2); L.length = 0; L.listsize = LIST_INIT_SIZE; //srand((unsigned)time(NULL)); for (i = 1; i < 15; i++) { L.elem[i].key = rand() % 100 + 1; ListInsert_Sq(L, i, L.elem[i].key); } return OK; /*请参考课本上的算法2.3*/ } //在L中第i个元素之前插入新的元素e,L的长度加1 Status ListInsert_Sq(SqList &L, int i, ElemType e) { if (i<1 || i>L.length + 1) return ERROR; if (L.length >= L.listsize) { lkey*newbase = (lkey*)realloc(L.elem, (L.listsize + LISTINCREMENT) * sizeof(lkey)); if (!newbase)return ERROR; L.elem = newbase; L.listsize += LISTINCREMENT; } q = &(L.elem[i - 1].key); for (p = &(L.elem[L.length - 1].key); p >= q; --p) *(p + 1) = *p; *q = e; ++L.length; return OK; /*请参考课本上的算法2.4*/ } //操作结果:依次对L的每个数据元素调用(*visit)(),一旦(*visit)()失败,则操作失败 Status ListTraverse_Sq(SqList L, Status(*visit)(ElemType)) { int i; for (i = 1; i <= L.length; i++) (*visit)(L.elem[i - 1].key); printf("\n"); return OK; } //将元素e的值打印出来 Status visit_sp(ElemType e) { printf("%d ", e); return OK; } //直接插入排序 void InsertSort(SqList L) { int compare1 = 0, move1 = 0; int i=0, j=0; lkey rc; for (i = 1; i<L.length; ++i)//从第二个开始 { compare1++; if (L.elem[i].key < L.elem[i - 1].key) { move1 += 2; rc = L.elem[i]; L.elem[i] = L.elem[i - 1]; for (j = i - 2; j >= 0 && rc.key < L.elem[j].key; --j)//从i-2个开始 { compare1++; L.elem[j + 1] = L.elem[j]; move1++; } L.elem[j + 1] = rc; move1 += 3; } } ListTraverse_Sq(L,visit_sp); printf("%d %d\n", compare1, move1); } //希尔排序 void ShellSort(SqList L, int dlta[], int t) { ListTraverse_Sq(L, visit_sp); int k; for (k = 0; k < t; k++) Shell(L, dlta[k]); ListTraverse_Sq(L, visit_sp); printf("%d %d\n", compare2, move2); } void Shell(SqList L, int dk)//一趟希尔插入排序 { lkey rc; int j; for (int i = dk; i < L.length; i++) { compare2++; if (L.elem[i].key < L.elem[i - dk].key)//比较i和i-dk { rc = L.elem[i]; move2++; for (j = i - dk; j >= 0 && (rc.key < L.elem[j].key); j -= dk)//[6]和[3],[0]比较 { compare2++; L.elem[j + dk] = L.elem[j];//记录后移,查找插入位置 move2++; } L.elem[j + dk] = rc;//插入 move2++; } } } int main() { SqList L; int i; int dita[3] = { 5,3,1 }, t = 3; for (i = 0; i <= 5; i++) { printf("当前随机数为:\n"); InitList_Sq(L); ListTraverse_Sq(L, visit_sp); InsertSort(L); ShellSort(L, dita, t); //BubbleSort(L); //QuickSort(L); //SelectSort(L); //HeapSort(L); /*printf("------|-比较次数-||-移动次数-|\n"); printf("Insert| %d || %d |\n", compare1, move1); printf("Shell | %d || %d |\n", compare2, move2); printf("Bubble| %d || %d |\n", compare3, move3); printf("Quick | %d || %d |\n", compare4, move4); printf("Select| %d || %d |\n", compare5, move5); printf("Heap | %d || %d |\n", compare6, move6);*/ } system("pause"); return 0; } ```

主函数调用副函数问题

计算n个学生的成绩中,高于平均成绩的人数,并作为函数值。用主函数来调用它,统计50个学生成绩中,求高于平均成绩的人数 我是这样写的: #include<stdio.h> int over(float,int); int main(void) { int n[50],i,j,t=0; float a; printf("请输入成绩:"); for(i=0;i<50;i++) scanf("%d",&n[i]); for(i=0;i<50;i++) t+=n[i]; a=t/50.0; printf("高于平均成绩的有%d人。",over(a,n); } int over(float a,int n[50]) { int i,j=0; for(i=0;i<50;i++) { if(n[i]>a) ++j; return(j); } 编译一直不通过,是我在实参调用上出错了吗? 还有其他的地方有没有错,求解答。

c语言主函数在调用求平均数的函数后就直接结束了

构建结构体: ![图片说明](https://img-ask.csdn.net/upload/201812/14/1544782928_868254.png) 求平均数的函数语句: ![图片说明](https://img-ask.csdn.net/upload/201812/14/1544782946_597926.png) 主函数语句: ![图片说明](https://img-ask.csdn.net/upload/201812/14/1544782962_57069.png) 试运行结果:

c语言,程序中函数没被调用。

```#include<stdio.h> #include<malloc.h> #include<string.h> #include<stdlib.h> #define OK 0 #define Err_Memory -1 #define Err_InvalidParam -2 #define Err_Overflow -3 #define Err_IllegalPos -4 #define Err_NoResult -5 typedef char *ElemType ; typedef struct node{ ElemType data; struct node *next; }ListNode,*LinkList; typedef int Status; Status InitList (LinkList L) { if (!L) return Err_InvalidParam ; L->next=NULL; return OK; } Status CreateCollection (LinkList C) { int count=1; ListNode *s,*p; ElemType e; if (InitList!=OK) return Err_NoResult ; p=C; while (1) { s=(ListNode *)malloc(sizeof(ListNode)); if (!s) return Err_Memory; e=(ElemType)malloc(11*sizeof(char)); if (!e) return Err_Memory; printf("请输入第%d个元素:",count++); gets(e); if (strcmp(e,"#")==0) break ; if (LocataList(e,C)==0) { if (InsertList(p,1,e)!=OK) return Err_NoResult ; p=p->next; } } return OK; } int LocateList (ElemType e,LinkList L) { int i=1; ListNode *p; if (!L) return Err_InvalidParam ; p=L->next; while (p&&strcmp (p->data,e)!=0) { i++; p=p->next; } if (!p) return 0; return i; } Status InsertList (LinkList L,int i,ElemType e) { ListNode *p,*s; int k=1; if (!L) return Err_InvalidParam ; p=L; while (k<i&&p) { k++; p=p->next; } if (k>i||!p) return Err_IllegalPos; s=(ListNode *)malloc(sizeof(ListNode)); if (!s) return Err_Memory; s->data=e; s->next=p->next; p->next=s; return OK; } int main() { LinkList A,B,C; ElemType s; A=(ListNode *)malloc(sizeof(ListNode)); B=(ListNode *)malloc(sizeof(ListNode)); C=(ListNode *)malloc(sizeof(ListNode)); printf("请输入集合A的元素(输入#结束):\n"); //scanf("%s",A); if (CreateCollection(A)!=OK) { printf("集合A创建错误!"); getch();return ;} ``` ![图片说明](https://img-ask.csdn.net/upload/201609/12/1473647353_427897.png) 请问一下,为什么这里,CreateCollection 函数没有被调用呢? 初学数据结构。 补贴了Insert 和Locate 函数。

c语言指针问题和函数调用吧

主函数定义一个指向结构体的指针,调用函数,如果函数的参数也是指向该结构体的指针,为什么不能修改主函数里指针内存中的内容。而如果我参数是一个结构体指针的引用,就可以修改。 按说参数是指针,指针对指针赋值,不是把地址赋了吗?

C语言中如果定义的函数return-1,想在主函数输出no,如何输出?

C语言中如果定义的函数return-1,想在主函数输出no,如何输出? c99

C语言调用函数实现矩阵自乘

各位前辈,小弟新学C语言,怎么也调试不过,不知道哪里出了问题,请问我该怎么调试? 调用void SelfMul(int A1[][3],int A2[][3],int n)实现3阶矩阵的乘法 #include<stdio.h> //void SelfMul(int A1[][maxSize],int A2[][maxSize],int n) void SelfMul(int A1[][3],int A2[][3],int n) { int s=0; for(int i=0;i<n;i++) for(int j=0;j<n;j++) { A2[i][j]=0; for(int k=0;k<n;k++) A2[i][j]=A2[i][j]+A1[i][k]*A1[k][j]; printf("%d ",A2[i][j]); if(++s%3==0)printf("\n"); } } int main() { int A1[][3]={{0,1,0},{0,0,1},{1,1,0}}; int A2[3][3]; // int s=0; SelfMul(A1[][3],A2[][3],3); //编译问题出错提示所在行 /* for(int m=0;m<3;m++) for(int b=0;b<3;b++) { printf("%d ",A2[m][b]); if(++s%3==0)printf("\n"); } */ return 0; } 编译不通过,提示error C2059: syntax error : ']'

C语言函数调用问题,求助

两个C语言文件,从一个里面调用另一个为什么不能?哪里错了![图片](https://img-ask.csdn.net/upload/201604/05/1459861247_189206.jpg)

C语言在数组中调用函数

#include<stdio.h> #define N 40 long Aver(int score[],int sum,int n); void FindMax(int score[],long num[],int n,int *pMaxScore,long *pMaxNum); void FindMin(int score[],long num[],int n,int *pMaxScore,long *pMaxNum); void Ascendingsort(int a,int n); void Descendingsort(int a,int n); void Swap(int *x,int *y); int main() { int score[N],maxScore,minScore; int n,i,sum; long num[N],maxNum,minNum,aver; printf("请输入学生数目:"); scanf("%d",&n); printf("Input student's ID and score:\n"); for(i=0;i<n;i++) { scanf("%ld%d",&num[i],&score[i]); if(score[i]>90) printf("优秀\n"); else if(score[i]>=80&&score[i]<=89) printf("良好\n"); else if(score[i]<60) printf("不及格\n"); else printf("及格\n"); } FindMax(score,num,n,&maxScore,&maxNum); printf("maxScore=%d,maxNum is %ld\n",maxScore,maxNum); FindMin(score,num,n,&minScore,&minNum); printf("minScore=%d,minNum is %ld\n",minScore,minNum); aver=Aver(score,sum,n); return 0; } /**************************************************************************** 函数功能:输出最高成绩及学号 ***************************************************************************/ void FindMax(int score[],long num[],int n,int *pMaxScore,long *pMaxNum) { int i; *pMaxScore=score[0]; *pMaxNum=num[0]; for(i=1;i<n;i++) { if(score[i]>*pMaxScore) { *pMaxScore=score[i]; *pMaxNum=num[i]; } } } /**************************************** 函数功能:输出最低分及其学号 ****************************************/ void FindMin(int score[],long num[],int n,int *pMinScore,long *pMinNum) { int i; *pMinScore=score[0]; *pMinNum=num[0]; for(i=1;i<n;i++) { if(score[i]<*pMinScore) { *pMinScore=score[i]; *pMinNum=num[i]; } } } /**************************************************************** 函数功能:计算总成绩的平均分 ****************************************************************/ long Aver(int score[],int sum,int n) { int i,average; sum=0; for(i=0;i<n;i++) { sum+=score[i]; } average=sum/n; printf("总分为%d\n",sum); printf("平均分为%d\n",average); } 每次调试平均数函数(最后一个函数)都不对,想问问错在哪了,说是要返回一个值,返回哪个值。

c语言中函数返回值类型的问题

看一道改错题: #include<stdio.h> #include<conio.h> #include<math.h> proc(int k)//很显然根据主调函数和返回值类型知道这里缺少类型 { int n;float s,w,p,q; n=1; s=1.0; while(n<=k){ w=2.0*n; p=w-1.0; q=w+1.0; s=s*w*w/p/q; n++; } return s; } void main(){ system("CLS"); printf("%f\n",proc(20)); } 我觉得既然变量s是float型,就应该改成float proc(int k)。可是本题的答案确实这样子改的 double proc(int k)我想问答案这样改对吗?如果对道理是什么?

c语言 调用函数中数组值传递问题

``` #include<stdio.h> #define N 3 typedef struct Student { int num; char name[10]; int score[3]; float aver; }Student; void input(Student stu[]); Student max(Student stu[]); void print(Student stu[]); int main() { Student stu[N]; Student *p=stu; Student q; input(p); q=max(p); /* printf("%d\n",q.score[1]); */ print(q); /*printf("学号%d\n 姓名%s\n 三门成绩%d %d %d\n 平均分%0.2f\n", q.num, q.name, q.score[0], q.score[1], q.score[2], q.aver); */ return 0; } void input(Student stu[]) { int i; for(i=0;i<3;i++) { scanf("%d %s %d %d %d",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]); stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])*1.0/3; } /* printf("%d\n",stu[2].score[1]); */ } Student max(Student stu[]) { int i,m=0; for(i=0;i<N;i++) { if(stu[i].aver>stu[m].aver) m=i; } /*printf("%d\n",stu[m].score[1]); */ return stu[m]; } void print(Student stud) { printf("成绩最高的同学是:\n"); printf("学号%d\n 姓名%s\n 三门成绩%0.2f %0.2f %0.2f\n 平均分%0.2f\n", stud.num,stud.name,stud.score[0],stud.score[1],stud.score[2], stud.aver); } ``` c:\users\初晨陌夜\desktop\s.cpp(24) : error C2664: 'print' : cannot convert parameter 1 from 'struct Student' to 'struct Student []' 求指教

c语言函数调用中的调用参数

数据结构与算法中的顺序表里面经常出现调用方法,有的在里面用&,有的用*,这是怎么区别

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

你以为这样写Java代码很6,但我看不懂

为了提高 Java 编程的技艺,我最近在 GitHub 上学习一些高手编写的代码。下面这一行代码(出自大牛之手)据说可以征服你的朋友,让他们觉得你写的代码很 6,来欣赏一下吧。 IntStream.range(1, 5).boxed().map(i -&gt; { System.out.print("Happy Birthday "); if (i == 3) return "dear NAME"...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

立即提问
相关内容推荐