用dev-cpp運行以下程式無問題,但是在leecode上運行報錯,求指點!!!!!
程式內容是實作回文數的判斷:
還有一個問題:
為了存盤輸入數字每一位上的數,我在程式中定義了一個容量為9999的陣列,怎么實作根據輸入數字的位數來定義陣列的容量啊??
#include <stdio.h>
int b[9999] ;
int main()
{
int a,n=0,i=0,j=0,c;
printf("請輸入一個數\n");
scanf("%d",&a);
c=a;
for(a=c;a>=10;a=a/10)
{
b[i]=a%10;
i=i+1;
}
b[i]=a%10;
if(i%2==1)
{
for(n=0;n<(i+1)/2;n++)
{
if(b[n]==b[i-n])
{
j=j+1;
}
}
if(j==(i+1)/2)
printf("True");
else
printf("False");
}
else
{
for(n=0;n<=i/2;n++)
{
if(b[n]==b[i-n])
{
j=j+1;
}
}
if(j==i/2+1)
printf("True");
else
printf("False");
}
}
這是報錯內容!!!!!!
Line 47: Char 5: error: redefinition of ‘main’ [solution.c]
int main(int argc, char *argv[]) {
^~~~
uj5u.com熱心網友回復:
樓主這個代碼沒什么問題,解釋見注釋,供參考://程式內容是實作回文數的判斷:
//還有一個問題:
//為了存盤輸入數字每一位上的數,我在程式中定義了一個容量為9999的陣列,怎么實作根據輸入數字
//的位數來定義陣列的容量啊??
#include <stdio.h>
int main()
{ //問題一:
int b[10];//C語言中int的取值范圍為:-2147483648 ~ 2147483647,十進制最大是10位數,所以b[?]不用這么大
int a,n=0,i=0,j=0,c;
printf("請輸入一個數\n");
scanf("%d",&a);
c=a;
//如果在這里加入動態陣列的定義,最前面的 int b[10]; 定義需洗掉或在頭部加'//' 改為注釋
//根據輸入數字的位數來定義陣列容量:你先需計算出輸入數字的位數n,
//然后: int *b = (int *)malloc(sizeof(int)*n); memset(b,0,sizeof(int)*n);
for(a=c;a>=10;a=a/10)
{
b[i]=a%10;
i=i+1;
}
b[i]=a%10;
if(i%2==1)
{
for(n=0;n<(i+1)/2;n++)
{
if(b[n]==b[i-n])
{
j=j+1;
}
}
if(j==(i+1)/2)
printf("True");
else
printf("False");
}
else
{
for(n=0;n<=i/2;n++)
{
if(b[n]==b[i-n])
{
j=j+1;
}
}
if(j==i/2+1)
printf("True");
else
printf("False");
}
//如果定義b[]是動態的,在代碼結束陳述句之前輸入:free(b);顯式釋放陣列,或不加 = 隱式釋放。
return 0;
}
//問題二:
// error: redefinition of 'main'編譯錯誤,main的重復定義
//這個題庫的操作方法就是:只需要補上 欠缺的代碼 即可
uj5u.com熱心網友回復:
int main 是不是要return一個int呢?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/282183.html
標籤:C語言
上一篇:請大佬看一下我寫的深搜有什么問題
下一篇:qt怎么能取消固定尺寸的設定呀
