C语言菜鸟求教大神,删除一条Structure中的数据为什么不成功,测试显示还是原来的数组?

作者&投稿:家易 (若有异议请与网页底部的电邮联系)
菜鸟请教:c语言 函数为什么会调用不成功?~

我表示很不理解啊,直接写从小到大排列不就是负数在左边,0在中间,正数在右边吗?
冒泡排序法,快速排序,插入排序……
也可以直接调用函数qsort也行
void sort(int *p,int n) {
int i,j;

for(i=0;i<n-1;i++) {

int leap=1;

for(j=0;j<n-1-i;j++) {
if(p[j]>p[j+1])

{int temp=p[j];p[j]=p[j+1];p[j+1]=temp;leap=0;}

}
if(leap) return;

}

}
不知道写错没

把删除函数改下
int delete(struct student *pStrhead)
{
struct student *ptemplate=pStrhead;
while(pStrhead!=NULL)
{
ptemplate=pStrhead;//这个放在第一个
pStrhead=pStrhead->pStrNext;
free(ptemplate);

}
return 1;
}

gTypeGame[m++]=gTypeGame[i];
这句有问题咯。如果你想把后面的数据覆盖前面的,那么应该是:
gTypeGame[m]=gTypeGame[m+1];
m++;

定义函数形参改成指针,引用函数代入实参

void compareGame(char *pteam1,char *pteam2)
{
    printf("
Please input the names of the two teams of the game you want to delete: ");
    scanf("%s%s",pteam1,pteam2);
    printf("
");
}
void deleteGame(Game *pg)
{
    ..............
    
    m--;
    printf("Deleted!

");
}
实在是不想写了。
你的问题是将实参的值赋值给了形参,形参和实参分别存储了两份一模一样的数据,你在子程序里修改形参的值,实参不会变,形参在子程序调用好后就释放了,所以对实参不改变。
换成将实参的地址交给子程序处理,子程序只是用实参的地址对实参的存储空间里的内容进行修改,修改好后把地址释放,实参的内容还是修改了。 
建议搜索关键字: c语言指针, 结构型的地址表示方式, 局部变量,全局变量,子程序生存周期



Inno Setup 编译器软件,菜鸟求教,“磁盘跨越必须启用,是为了创建21000000...
据 InnoSetup 软件的使用帮助:[Setup]: DiskSpanning Valid values: yes or no Default value: no Description:If set to yes, the disk spanning feature will be enabled. Instead of storing all the compressed file data inside SETUP.EXE, the compiler will split it into multiple SETUP-...

【菜鸟求教:用vhdl语言设计一个方波移相器。100分拜谢!!!】_百度知...
如果是Xilinx的FPGA的话,可以用DCM来实现。非常方便。如果是做IP的话,估计要用锁相环了。

菜鸟求教C语言acos函数和坐标
acos( ) 的形参当然有范围,-1,至1,闭区间,基本的数学知识,如果朝界控制台会显示-1.#IND,表示数据超界;关于坐标的函数当然有,需要用到结构体COORD,以及头文件windows.h 具体代码如下:include <windows.h> include <stdio.h> void gotoxy(int x,int y){ COORD coord;coord.X=x;coord.Y...

菜鸟求教大神艾希新版天赋怎样点
艾希是个很后期的英雄,建议当今版本主E装备易成型,副W,学一级Q就可以了。表示艾希个人喜欢放弃引燃,带闪现和加速,不死才是王道。现在带屏障的adc也很多,但个人感觉不适合艾希,因为艾希没有位移技能,屏障的逃跑能力远不如加速,相比之下屏障更倾向于adc之间单挑或者团战打成残局时用,而艾希没有...

怎样学英语?~~~菜鸟求教~
现在各种说法很多,你要怎么学,主要看你想达到的目标。如果只是应试,那就多背多练。如果想要运用,就不同。比如你想可以看外国新闻,那就专攻吧。如果你想和老外交流,那就多练口语啦。这些说起来很空,建议你在电驴里面搜索“英语学习方法”,看完之后你会有一个全面的认识。特别建议你搜一个“...

菜鸟求教一道极简单的C语言题?
int max(float x,float y){float z;z=x>y?x:y;return(z);} 这个函数的返回类型是int型,而你的返回值是float z,最后还是取得整型返回的截取结果的整数部分返回 输入的时候因为scanf("%f,%f",&a,&b);中间有个逗号,所有你要这样输入1.5,2.3得到的结果是2 ...

没有用过手机贷的菜鸟求教大神好用吗?
你是想借钱,不急的话不推荐你去手机贷,这里是要收利息的,不过要是遇上紧急情况这就好用了,填写资料都挺方便的,放款迅速,挺适合一些紧急情况的。

...是语言?编程工具?规范?还是其他什么?菜鸟求教~
C#、HTML、asp、jsp都是用来做网站开发的,html只能用来设计制作静态网页。但你要动态起来(像网站留言这些功能)就需要一门网页编程技术,你学过JAVA,那应该就能使用JSP做为开发技术做动态网站。而C#、.net、asp都是微软公司的产品,C#也可以来用编写网站程序,但需要在.net框架中运行。ASP是微软最初...

菜鸟求教:ROOTKIT扫描是什么大神们帮帮忙
Rootkit是指其主要功能为隐藏其他程式进程的软件,可能是一个或一个以上的软件组合;广义而言,Rootkit也可视为一项技术。最早Rootkit用于善意用途,但后来Rootkit也被黑客用在入侵和攻击他人的电脑系统上,电脑病毒、间谍软件等也常使用Rootkit来隐藏踪迹,因此Rootkit已被大多数的防毒软件归类为具危害性的恶意...

菜鸟求教C语言acos函数和坐标
double acos(double x);x Value between –1 and 1 whose arccosine is to be calculated.只能是-1和1之间.操作系统的图形库才有坐标定义.显示一个"*",如果你是命令控制行内显示,printf就行了,但是如果是要画出来,Windows下可以用TextOut函数 ...

邱县15544876277: C语言 删除字符串中的指定字符'*',要求用指针,谢谢~ -
卷枯保济: #include intmain() { charstr[100]; char*p,*q; charc; gets(str); c=getchar(); for(p=str,q=str;*p!='\0';p++)//用指针*p去提取str中每一个元素,用指针*q去删除str中需要删除的元素 if(*p!=c) *(q++)=*p; *q=*p; puts(str); return0; } 扩展资料: 其它方法: ...

邱县15544876277: C语言中如何通过函数实现从给定字符串中删除指定字符串?谢谢各位帮忙
卷枯保济: char* DelStr(char* str1, char* str2) { int i,j; int iLen1,iLen2; int iFlag,iPos; char s1[128+1],s2[128+1]; memset(s1,0x00,sizeof(s1)); memset(s2,0x00,sizeof(s2)); strcpy(s1,str1); strcpy(s2,str2); iLen1 = strlen(s1); iLen2 = strlen(s2); for(i = 0;i&lt;=iLen1 - ...

邱县15544876277: 使用C语言如何取去掉一个字符串的首尾字符,新手求教各位大神,多谢啦. -
卷枯保济: 字符串用数组表示. 比如用str[999]表示字符数组.算出字符长度,删除str[0]和最后一个字符. #include<stdio.h> #include<string.h> #define n 100 void main() { char a[n],i,t; scanf("%s",a); t=strlen(a); for(i=0;i<t-1;i++) baia[i]=a[i+1]; a[i-1]='\0'; printf(...

邱县15544876277: c语言中,删除数组中的指定字符 -
卷枯保济: string str="abcdefghijklmn"; char del='a'; for(int i=0;i{if(str[i]==del) { for(int j=i;j str[j]=str[j+1];} } C++的核心实现部分,C语言大同小异

邱县15544876277: C语言中怎么删除一个字符 -
卷枯保济: 代码如下: #include<stdio.h> #include<string.h> void delchar(char s[], char c); int main(void) { char c; char s[80]; printf("请输入字符串: "); gets(s); printf("输入要删除的字符: "); scanf("%c", &c); delchar(s, c); ...

邱县15544876277: C语言的删除函数 -
卷枯保济: 楼主的意思是在str1中删除str2中出现的字符?那么改成:#include<stdio.h> void main () { char str1[9]={'t','i','n','m','f','g','y','f','s'}; char str2[3]={'A','s','g'};int i,k,l; for(i=0;i<9;i++) { l=0; for(k=0;k<3;k++) { if (str1[i]=str2[k]) {l=1;break;} } if l!=1 printf("%c",str1[i]); } }

邱县15544876277: 求高手写段C语言代码:将一字符串str(字符自己可以安排)中的所有字符'k'删除! 谢谢! -
卷枯保济: 给你个函数代码供参考:char *deleteCharacter(char *str, char k) { char *p2; char *p=str; while(*p) { if(*p == k) { for(p2=(p); *p2!='\0';p2++) { *p2=(*(p2+1)); } } else p++; } return str; }

邱县15544876277: c语言中.怎么从一串字符串中删掉一类字符
卷枯保济: #include &lt;stdio.h&gt; void f(char* str, char c) { int i = 0, j = 0; while (str[j] != 0) { if (str[j] != c) { str[i] = str[j]; i++; } j++; } str[i] = 0; } int main() { char s[100]; while (scanf("%s", s) != EOF) { f(s, 'a'); printf("[%s]\n", s); } return 0; } 想象两个下标一个i一...

邱县15544876277: C语言编程 自定义从字符串中删除指定的字符函数 -
卷枯保济: char* remove_chars(char *str,const char *rmchars)//删除str中所有包含在rmchars中的字符 {char buff[256]={0};char *ps1,*ps2;ps1=(char *)rmchars;while(*ps1)buff[*ps1++]=1;//遍历rmchars,将要删除的字符对应在buff中的位置1ps2=str;while...

邱县15544876277: c语言:从字符串s中删除字符c -
卷枯保济: #include<stdio.h> void main() { char str[256],str1[20],c; int i,j; gets(str); gets(str1); c=str1[0]; i=j=0; while ( str[i]!=0 ) { if ( str[i]!=' ' ) { str[j]=str[i]; j++; } i++;} printf("%s\n",str); }

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