c语言笔记易错点 联系客服

发布时间 : 星期三 文章c语言笔记易错点更新完毕开始阅读3c58f331185f312b3169a45177232f60dccce77a

.

1:排序函数不需要返回值

/*===================================== 本函数用于对数组从小到大排序

参数说明:a[]表示待排序数组的首地址;num表示数组长度

i,j是循环变量;k用于记录每轮比较的最小值下标; temp是交换临时变量 返回值:无

=====================================*/ void sort(int a[],int num) {

int i,j,k,temp;

for(i=0;i

k=i;

for(j=i+1;j

if(a[j]

temp=a[i]; a[i]=a[k]; a[k]=temp; } }

错误int queue(int array2[n]) //定义为数组排序的函数 {

int i,j,temp;

for(i=0;i<=n-2;i++) //选择法排序 for(j=i+1;j<=n-1;j++) {

if(array2[i]>array2[j]) //交换数组的值 {

temp=array2[i];

array2[i]=array2[j]; array2[j]=temp;

} } }

return(array2[n]);//此返回值的意义是什么?为什么程序运行成功? 【此返回值其实已经溢出了,通过调试函数可以看出】

.

.

/*===========================================

本函数用于将数组中的元素值作为ACSII码生成字符串,并对应存储输 入的字符数组中。

参数说明:a[]数组作为ACSII码;num表示数组长度;str[]用于储存 形成的字符串; 返回值:无

============================================*/

此时不需要返回值所以不需要定义函数的类型,为空即可;

void ACSIIstr(int a[],int num,char str[]) {

int i;

for(i=0;i

str[i]=a[i]; } }

The variable 'num' is being used without being initialized.

到底是毛意思啊

int panduan(char str1[],char str2[]) {

int i=0,j=0,k=0,len1,len2,num=0;

{

如果这里写成num,就会出现 :

还有一种情况则是未加&

The variable 'num' is being used without being initialized. }

while(j>=0) {

if(str1[j]==0)break;

如果此处写成str1[j]==’0’,那么此处的循环成为死循环。

}

j++;

.

.

}

len1=j; while(k>=0) { } len2=k;

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

return 0;

if(str2[i]==str1[0]) { }

if(num==len1)return 1;

num=0;

for(j=0,k=i;k<=len2-1,j<=len1-1;j++,k++) { }

if(str2[k]==str1[j]/*||str1[i]==str2[j]+32||str1[i]==str2[j]-32*/) {num++;} else break;

if(str2[k]==0)break; k++;

#include #define n 30 void main() { }

int tran2(int num,int array1[n],int len)

int numb=0,array2[n]={1,1,1,1,1},len1=0,i=0; int tran2(int num,int array1[n],int len);

printf(\请?输?入?一?个?十?进?制?正y整?数簓:阰\\n\); scanf(\,&numb);

len1=tran2(numb,array2,len1); printf(\,len1); for(i=0;i<=len1-1;i++) { }

printf(\);

//if(array2[i]!=0) printf(\,array2[i]);

.

.

{

int i=0,j,shan,temp; while(num) { }

printf(\,num%2); shan=num/2; if(num%2) {array1[i]=1;} else

{array1[i]=0;}

printf(\,array1[i]); i++;

printf(\,i); num=shan;

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

temp=array1[j];

array1[j]=array1[i-1-j];该方法错误,其实在j=2的时候交换已经全部完成,再 array1[i-1-j]=temp; 继续下去就又交换了一遍

printf(\,array1[j]); }

{ } len=i; return(len);

temp=array1[j];

array1[j]=array1[i-1-j]; array1[i-1-j]=temp;

for(j=0;j<=(i-1)/2;j++)

}

1:Numb is corrupt 的原因是数组定义为array【】=0;

2:函数未返回值的时候len1=0,为什么?明明函数里面的len值已经改变了;

3:如果函数想要返回两个值应该怎么办? E59

#include #include

.