當前位置:編程學習大全網 - 編程語言 - C語言編程,笨小猴那道,幫我看看,實在不知道出什麽問題

C語言編程,笨小猴那道,幫我看看,實在不知道出什麽問題

num=maxn-minn; 應該加上類型聲明

即 int num=maxn-minn; 才對

補充1: 前面的沒說對, 是缺了個括號,然後

if(num%i==0) {y=0;break} break後面需要壹個分號

妳的程序格式有點亂

補充2:

if(a[i]='\n') break; 比較操作應該是“==”

補充3:

for(i=0;i<100;i++)

{scanf("%d",&a[i]);

b[i]=1;

if(a[i]='\n') break;

j++;

}

要改為:

for(i=0;i<100;i++)

{

a[i] = getchar();

b[i]=1;

if(a[i]=='\n')

{

break;

}

j++;

}

才會有妳要的效果。

補充 4:

if(num==1||num==0) y=1;

else{

for(i=2;i<=sqrt(num);i++)

{if(num%i==0) {y=0;break}

else y=1;

}

應該改為

if(num==1||num==0) y=1;

else{y = 0;

for(i=2;i<=sqrt(num);i++)

{

if(num%i==0) {y=1;break}

else y=0;

}

現在程序有妳要的效果了,雖然淩亂,但是是壹個妳自己思路的可以正確執行的程序了

補充5:

下面就是完整的,包含了補充1到補充4的 編譯錯誤到邏輯錯誤改動的版本。

#include <stdio.h>

#include <math.h>

int main()

{

int y,a[100],b[100],num,x,j,maxn,minn,i;

j=0;

for(i=0;i<100;i++)

{

a[i] = getchar();

b[i]=1;

if(a[i]=='\n')

{

break;

}

j++;

}

for(i=0;i<=j;i++)

{

for(x=i+1;x<=j;x++)

{

if(a[i]==a[x])

{

b[i]++;

}

}

}

maxn=b[0];minn=b[0];

for(i=0;i<=j;i++)

{

if(b[i]>maxn) maxn=b[i];

if(b[i]<minn) minn=b[i];

}

num=maxn-minn;

if(num==1||num==0)

{

y=1;

}

else

{

y =0;

for(i=2;i<=sqrt(num);i++)

{

if(num%i==0)

{

y=1;break;

}

else y=0;

}

}

if(y==0) printf("Lucky Word\n%d",num);

if(y==1) printf("No Answer\n0");

}

補充6:(最後的補充)

下面是我提供的完整的程序,思路稍有不同,但是我相信程序結構很清晰,妳可參考

#include <stdio.h> //printf 聲明

#include <math.h> //sqrt 聲明

#include <memory.h> // memset 聲明

#include <ctype.h> // tolower聲明

//下面的函數判斷壹個大於0的整數是不是質數

int isPrimeNumber(int inNum) //參數需要外部保證大於等於1

{

int isPrime;

int i;

if (1 == inNum)

{

isPrime = 0;

}

else

{

isPrime = 1;

for (i = 2; i <= (int)sqrt(inNum); ++i)

{

if ((inNum % i) == 0)

{

isPrime = 0;

break;

}

}

}

return isPrime;

}

int main()

{

char characters[100];

char tempChar;

int count[26]; //只需要為26個字符分別保存壹個計數就夠了

int maxn;

int minn;

int num;

int i; //主循環變量

int wordLength; //單詞長度

memset(count, 0, 26 * sizeof(int)); //清零 count數組

//存儲不超過100個字符的單詞的每個字符

for(i = 0; i < 100;i++)

{

tempChar = (char)getchar();

if(tempChar =='\n')

{

wordLength = i;

break;

}

else

{

characters[i] = (char)tolower(tempChar);// 若是大寫,變為小寫

count[characters[i] - 'a']++; //給相應字母的計數加1

}

}

//求出最大,最小

maxn = 0;

minn = 0;

for (i = 0; i < 26; ++i)

{

if (0 == maxn)

{

maxn = count[i]; //初始化為第壹個不為0的數

}

else

{

if (count[i] > maxn)

{

maxn = count[i];

}

}

if (0 == minn)

{

minn = count[i]; //初始化為第壹個不為0的數

}

else

{

if (count[i] < minn && count[i] != 0)

{

minn = count[i];

}

}

}

num = maxn - minn;

if (num != 0 && isPrimeNumber(num))

{

printf("Lucky Word\n%d",num);

}

else

{

printf("No Answer\n0");

}

}

  • 上一篇:蘋果品牌的商標為什麽少了壹塊?
  • 下一篇:安徽教育廳回應教師別墅內補課,妳如何看待這個回應?
  • copyright 2024編程學習大全網