結課趕作業時遇到的問題,求大佬們幫忙解答
為什么給array和p分配動態空間的那個陳述句編譯時現實錯誤啊,感謝指導

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
void main()
{
int i,j,n;
float *p;
float *array;
if (array=(float*)calloc(9999,sizeof(float))&&p=(float*)malloc(sizeof(float))) ;
else printf("fail!");
gets(array);
n=strlen(array)
for(i=0;i<n;i++)
for(j=n-i-1;j>0;j--)
{
if (array[j]>array[j-1])
{
*p=array[j];
array[j]=array[j-1];
array[j-1]=*p;
}
}
for(i=0;i<n;i++)
printf("%.2f",array[i]);
free(array);
free(p);
}
uj5u.com熱心網友回復:
array=(float*)calloc(9999,sizeof(float));p=(float*)malloc(sizeof(float)) ;
if(array==NULL||p==NULL){printf("fail")};
else ...
或者if(array!=NULL&&p!=NULL)
...
else printf...
還有,你這是要實作底下的內容吧?if判斷完了就沒有操作了直接else?完了也沒{},你這且不說判斷規不規范,說實話你這個ifelse對下面的代碼沒有任何影響,不管你這個結果怎么樣都會執行
float *p=NULL;
float *array=NULL;//指標無值賦NULL,不然是野指標
array=(float*)calloc(9999,sizeof(float));
p=(float*)malloc(sizeof(float)) ;
if(array==NULL||p==NULL){
printf("fail");
}
else {
gets(array);
n=strlen(array);//不要;的?
for(i=0;i<n;i++){
for(j=n-i-1;j>0;j--)
{
if (array[j]>array[j-1])
{
*p=array[j];
array[j]=array[j-1];
array[j-1]=*p;
}
}
}
for(i=0;i<n;i++){
printf("%.2f",array[i]);
}
free(array);
free(p);
現在還不熟練的時候不要省略{},哪怕只有一句可以省的時候也用上,不然你找錯都不知道在哪找,沒有細看你要做的功能,差不多應該是這樣。釋放的前提是你要有
uj5u.com熱心網友回復:
if (array=(float*)calloc(9999,sizeof(float))&&p=(float*)malloc(sizeof(float))) ;
else printf("fail!");
這句話 有問題,在 IF 后面直接加一分號 ; ,怪怪的。
uj5u.com熱心網友回復:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
//void main()
int main()
{
int i,j,n;
float *p;
float *array;
/*
if (array=(float*)calloc(9999,sizeof(float))&&p=(float*)malloc(sizeof(float)))
;
else
printf("fail!"); //fail就完了?后面使用array和p那不一樣有問題嗎?
*/
array = (float *)calloc(999, sizeof(float));
if (!array)
return -1;
p = (float *)malloc(sizeof(float));
if (!p)
return -1;
gets(array); //對float快取使用gets,我感覺是不是走錯門了?程式還能執行嗎?
n=strlen(array)
for(i=0;i<n;i++)
for(j=n-i-1;j>0;j--)
{
if (array[j]>array[j-1])
{
*p=array[j];
array[j]=array[j-1];
array[j-1]=*p;
}
}
for(i=0;i<n;i++)
printf("%.2f",array[i]);
free(array);
free(p);
}
基礎問題先弄明白,gets是針對什么的函式,是對float型別的嗎?
uj5u.com熱心網友回復:
gets可以對float型別快取?
uj5u.com熱心網友回復:
我沒看他的代碼,上面說了,我主要是想說他的邏輯問題,沒注意他的代碼實作用的對不對
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/44298.html
標籤:新手樂園
上一篇:C++習題
下一篇:窮舉問題
