當前位置:首頁 » 編程語言 » c語言看錯在哪裡怎麼辦
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言看錯在哪裡怎麼辦

發布時間: 2022-02-28 21:17:20

c語言問題,幫忙看一個程序,看錯誤出在什麼地方,謝謝。

#include <stdio.h>//沒有注釋的程序不是好程序,特別是用簡單字母定義了一些變數,更需要注釋
#include <string.h>//為了防止數組越界,請你測試時輸入的數字少於10個
void main()
{
char str[50],*pstr;
int num[10]={0},*pn;//數組全部初始為0
// pn=num;//在定義變數之前不能執行任何操作,除非賦初值
int i,k,kn,e,e10,digit;
int c;//把數字字元轉為一位整數
int nc=0;//整數個數統計,也作為num[]的下標
int flag=0;//0標記字元不是數字,1標記字元是數字
i=0;
k=0;//表示連續數字字元的位數
digit=0;
kn=0;
printf("Please input a string.\n");
gets(str);
pstr=str;
str[49]='\0';//防止越界
printf("有效字元串是: \n%s \n",str);//
while(*(pstr+i)!='\0')
{
if((*(pstr+i)) >='0' && (*(pstr+i))<='9')
{
flag=1;
c=*(pstr+i)-48;//發現數字,開始往num[nc]放值,
num[nc]=num[nc]*10+c;//每次擴大十倍再加上一個個位數
}
else
{//現在的字母不是數字
if(flag==1)//如果剛才是數字,那麼說明一段連續的數字結束了,即已經取得一個整數
{
nc++;//下標後移
//在否則,就只是一般字元了,不需要處理
flag=0;//標記為非數字
}
}
i++;///////////////////不要忘記
}//最終回得到nc個整數,
if((*(pstr+i-1)) >='0' && (*(pstr+i-1))<='9')
nc++;//注意,如果字元串的最後是數字,然後是'\0';
//那麼上面的nc++執行不了(因為while()),所以這里補上

printf("The string has %d numbers.\nThey are:\n",nc);
pn=num;
for(i=0;i<nc;i++)
printf("%d ",*(pn+i));
printf("\n");
}

② c語言,看錯在哪裡。如下。

不能2n,那是n*2

③ c語言 看我哪裡錯了

你3個for循環都公用同一個i來控制,
邏輯肯定是混亂的

④ c語言 幫忙看一下錯在哪裡了

錯的原因和刪除、修改都寫在「/**/」裡面了,注意一下縮進,不然寫大程序連自己都看不懂。

#include<stdio.h>
#include<string.h>
void main()
{
float a,b,c,max,i;
loop:
printf("Please input three number:\n");
scanf("%f %f %f",&a,&b,&c);
/* while((a<0||a>9)||(b<0||b>9)||(c<0||c>9))
*/ if((a<0||a>9)||(b<0||b>9)||(c<0||c>9))/*while的條件永遠成立,死循環*/
{
printf("you don't input number!!!please input again:\n");
goto loop;
}
if(a>=b&&a>=c) i=a;
else if(b>=c) i=b;
else i=c;
max=i;
/* printf("最大的數字是max=%d\n",max);
*/ printf("最大的數字是max=%f\n",max); /*max是float數據,應該用「%f」*/
goto loop;
}

⑤ C語言看看錯在哪裡,怎麼改

把鏈接錯誤報告貼出來,如果不是語法錯誤就把出錯情況貼出來,這么長。
p1->stu = student; 這是什麼意思?p1裡面有stu這個成員嗎?
fscanf(fp,"%d%s%*c%d",&student.num,student.name,&student.score); 這一句之前我好像沒看到結構變數student的聲明?

總的來說這個程序很混亂,函數定義都寫到前面,我找main函數都找半天,各個函數的工作不明確。

你寫幾個函數就行了
1.鏈表初始化函數,建立一個空鏈表,只有一個空的頭結點就好。
2.從文件中讀取數據的函數,把空鏈表頭結點指針和兩個文件名字元串傳入函數,打開文件,讀取數據直接加入到鏈表中。如果兩個文件的數據是同步匹配的話,可以同步進行鏈表修改(我看你main函數的意思是同步匹配的)。然後關閉文件。
3.將鏈表輸出到文件的函數,把鏈表頭結點指針和文件名字字元串傳入函數,在函數里打開文件,遍歷鏈表,把數據按序寫入。然後關閉文件。

如果兩個文件不是同步匹配,就需要再寫一個修改結點的函數。按找學號或者名字搜索結點再修改。

main函數裡面只要定義一個空的結構指針,兩個字元串常量(文件名)就夠了,依次調用這幾個函數就行了。

⑥ c語言,看看錯在哪裡

第二個for是不是應該是for(i=1; i<101; i++)。
改了之後,列印結果是1~100,就是把i打出來了,因為if(a != 0)這個條件始終不會成立。為什麼呢,你做的運算是100!,即sum = 100!,而100的階乘這個數字是非常龐大的,long已經不足以存儲
for(j=1;j<101;j++)
{
sum=sum*j;
}
這個執行完後,sum溢出了,它的值是0。所以執行下一個for的時候,a始終等於0。

⑦ c語言編譯出錯,怎麼查找錯誤出在哪行

步驟:

1.打開源代碼文件,在控制台里查看錯誤類型。

⑧ 如何查看C語言錯誤在哪裡

#include語句不能有;號

main函數那句也不能有;號

#include<stdio.h>//;
intmain()//;
{
printf("Happynewyeartoeveryone! ");
return(0);
}

⑨ c語言錯在什麼地方

加上一個頭文件#include <stdio.h> ,把t 初始化為1 ,寫完整的話,最好,最後再加上return 0;