新聞中心
C語(yǔ)言階乘函數(shù)中錯(cuò)誤在什么地方?
第一個(gè)問題,幾乎所有C語(yǔ)言新手都要犯的錯(cuò)誤,就是判斷相等要用判斷等號(hào)==而不是賦值等號(hào)=,把 if (n=1) 改成 if (n==1) 就解決了。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)、玉龍網(wǎng)絡(luò)推廣、微信小程序開發(fā)、玉龍網(wǎng)絡(luò)營(yíng)銷、玉龍企業(yè)策劃、玉龍品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供玉龍建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
第二個(gè)問題,嚴(yán)謹(jǐn)應(yīng)該是沒什么問題,只要結(jié)果不超過 int 類型的上限,都是對(duì)的,不過程序可以更簡(jiǎn)潔一點(diǎn), if (n==1) ... else ... 這個(gè)條件完全可以不要,只要那個(gè) for 循環(huán)就夠了。
關(guān)于c語(yǔ)言二維數(shù)組做函數(shù)參數(shù)的,總是出現(xiàn)錯(cuò)誤提示。
int n,i,j;
printf("請(qǐng)輸入階數(shù)n:\n");
scanf("%d",n);
int a[n][n];這里可能有問題,具體看編譯器,有些編譯器數(shù)據(jù)類型的定義必須放在函數(shù)的一開始,中間不能插入其他語(yǔ)句,還有數(shù)組的維數(shù)只能是常量,要么固定,要么用宏定義確定
c語(yǔ)言自定義函數(shù)返回值錯(cuò)誤,求助
有 else 是
只有 n == 0 return jcjg;返回jcjg 否則不確定返回何值(實(shí)際返回 eax 寄存器的最后一次值)
沒有 else 任何時(shí)候 return jcjg;總是會(huì)返回jcjg。
不過沒見過這樣用遞歸的,
像這種簡(jiǎn)單計(jì)算,正常都是用迭代處理,不用遞歸的;
只有像樹一類的復(fù)雜的數(shù)據(jù)結(jié)構(gòu),和排序或更復(fù)雜的算法,才用遞歸實(shí)現(xiàn).
int jc(int n)
{
if(n != 0)
{
printf("%d-%d\n",jcjg,n);
jcjg = jcjg * n;
//jc(n - 1);改成
return jc(n - 1);看行不行;
}
else
{
return jcjg;
}
}
C語(yǔ)言函數(shù)出錯(cuò) cannot convert from 'char' to 'char *'
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
typedef?struct?work
{
char?num[10];
char?name[10];
char?sex[10];
char?age[10];
}STU;
int?main()
{
STU?stu={"1001","12","45","19"};
STU?stu1,stu2;
int?x;
char?ch1[10];
//原代碼char?*ch=ch1;
//原代碼FILE?*f=fopen("D:\letter.txt","w+");
FILE?*f=fopen("D:\\letter.txt","w+");?//要加雙斜杠"\\"
if(f==NULL)
{
printf("\n打開文件出錯(cuò).\n");
exit(1);
}
fwrite(stu,sizeof(struct?work),1,f);
rewind(f);????????//將文件指針重新指向開頭
fread(stu1,sizeof(struct?work),1,f);
x=atoi(stu1.num);?//字符串轉(zhuǎn)換為數(shù)字
//原代碼ch=(char)(++x);
x++;??????????????//數(shù)字由1001變?yōu)?002
itoa(x,ch1,?10);??//數(shù)字轉(zhuǎn)換為字符串
strcpy(stu1.num,ch1);
rewind(f);????????//將文件指針重新指向開頭
fwrite(stu1,sizeof(struct?work),1,f);
printf("%s\t%s\t%s\t%s\t",stu1.num,stu1.name,stu1.sex,stu1.age);
fclose(f);????????//最后要關(guān)閉文件
return?0;
}
C語(yǔ)言函數(shù)使用for循環(huán)出錯(cuò)
j=t*100
while(j--)
這里的while語(yǔ)句和for語(yǔ)句各起什么作用?
{
是指循環(huán)
j*i
次嗎?
for(i=8505;i;i--);
}
}
//============================================
空跑,也就是延時(shí)的作用,
for(i=8505;i;i--);一次全循環(huán)應(yīng)該是1ms,void
delay(float
t)應(yīng)該是延時(shí)t*100ms
c語(yǔ)言函數(shù)定義出錯(cuò),函數(shù)前寫上int 就報(bào)錯(cuò)
try換掉, 是關(guān)鍵字,還有break 也不能在亂用。
樓主應(yīng)該多看看編程例題,這樣寫很亂,可讀性比較差。如果在開始就養(yǎng)成良好代碼寫作習(xí)慣,成為一個(gè)優(yōu)秀的程序員不是問題,還有記得寫注釋,很重要。
分享標(biāo)題:c語(yǔ)言函數(shù)錯(cuò)哦nvert,C語(yǔ)言出錯(cuò)
網(wǎng)站鏈接:http://www.dlmjj.cn/article/hoespg.html