C語言運行程序為什么沒有輸出數(shù)字,產(chǎn)生的原原因如下:
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,清豐企業(yè)網(wǎng)站建設,清豐品牌網(wǎng)站建設,網(wǎng)站定制,清豐網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,清豐網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
1、輸入的格式不對
要輸入“浮點數(shù)”并用 “逗號” 分隔輸入三個數(shù)兩個逗號后還要額外多加一回車才開始后面的流程,
如果把
scanf("%f,%f,%f\n",a,b,c);
改為
scanf("%f%f%f",a,b,c);
就可以用空白符做分隔了。
2、沒有輸出
不知道計算的結(jié)果那算法就沒有意義了。輸出不一定是要打印到屏幕上的,可以是下一個程序的輸入,可以是一個文件、一段語音、一張圖像,甚至是機器人的步行動作等等。
程序要實現(xiàn)的功能沒說,怎么知道錯什么了?
#include stdio.h
float *search(float (*p)[4],int n); /*函數(shù)定義應該寫在外*/
main()
{ float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};
/*float *search(float (*p)[4],int n); 應該寫在外*/
float *a = NULL; /*使用前應該初始化為NULL 雖然不是必須的 僅僅是建議*/
int i,j;
for (i=0;i3;i++) { //增加
a=search(score,i);
if (a==*(score+i))
{
printf("No.%d score is ",i);
for (j=0;j4;j++)
printf("%f ",*(a+j));
putchar('\n');
}
}
return(0);
}
float *search(float (*p)[4],int n)
{
/*
這函數(shù)什么意思,到底查找什么呀,好費解
*/
int i;
float *a;
a=*(p+n+1); //什么p+n+1加n還加1到底要干什么
for (i=0;i4;i++)
if (*(*(p+n)+i)=60) /* 什么意思,第一個分數(shù)=60?做什么,你的3組數(shù)據(jù)都是=60的 */
a=*(p+n); // 另a這樣改變,你是根據(jù)數(shù)據(jù)特征(=60)來變???
return(a);
}
題目似乎是:有一個班,3個學生,各學4門課,計算總平均分和第3個學生的成績。
void main()
{void average(float *p,int n);
void search(float (*p)[4],int n);/*此行問題*/
float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};
average(*score,12);
search(score,2);
}
void average(float *p,int n)
{float *p_end;
float sum=0,aver;
p_end=p+n-1;
for(;p=p_end;p++)
sum=sum+*p;
aver=sum/n;
printf("average=%5.2f\n",aver);
}
void search(float (*p)[4],int n)
{int i;
printf("the score of NO.%d are:\n",n);
for(i=0;i4;i++)
printf("%6.2f",*(*(p+n)+i));
}
我就不說廢話了,你寫的看得好令人費解
scanf("%f %f %f",a,b,c);//改為scanf("%f%f%f",a,b,c);,空格去掉比較好。
else if (m=0)改為else if (m==0)
可以調(diào)用。
輸入的數(shù)據(jù) 應合理,例如: Enter e and x: 輸入 0.001 0.25
至于公式是否正確,計算結(jié)果是否對,未給你仔細看。