我一直試圖在C.For循環無法正常運行
這一切都被工作完全正常,除了實際的加密循環計數器來創建一個密碼生成。它總是停在大約39處。強制它進一步,只會導致出現一些隨機的ASCII符號,而不是A-Z。 (對不起,我無法描述它特別好。)
#include <stdio.h>
#include <stdlib.h> /* For exit() function*/
#include <time.h>
#define SIZE 26
int main(){
char plainAlphabet[27] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',' '};
char cipherAlphabet[27];
char plainText[] = "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG";
int x = 0;
int c = 0;
int numbers[SIZE];
int i, n, tmp;
srand(time(NULL));
// Initialize the array
for(i = 0;i < SIZE;++i)
numbers[i] = i;
// Shuffle the array
for(i = 0;i < SIZE;++i)
{
n = rand() % SIZE;
tmp = numbers[n];
numbers[n] = numbers[i];
numbers[i] = tmp;
}
// Iterate through the array. Your numbers are already random
for(i = 0;i < SIZE;++i){
cipherAlphabet[i] = plainAlphabet[numbers[i]];
};
int a = 0;
x = 0;
i = 0;
int z = strlen(plainText);
printf("%d\n",z);
for(plainText[x] != "^";c < z + 100; c++){
if(plainAlphabet[c] == plainText["%d",x]){
printf("%c",cipherAlphabet[c]);
a = a + 1;
x = x + 1;
c = 0;
};
};
printf("%d",c);
printf("%d",z);
scanf("%d", tmp);
return 0;
}
(很抱歉,如果這似乎是顯而易見的和/或重複。)
'的scanf( 「%d」,TMP); '是錯的。另外,在'if(...)'中使用'plainText [x]'而不是'plainText [「%d」,x]','}'後面不需要分號。你的'for'循環對我來說看起來很可疑! – 2014-11-02 09:08:11
我不明白'for(plainText [x]!=「^」; ...)'。爲什麼你在循環的初始化部分有一個比較?而且你不能將'char'與'char *'進行比較。 – Barmar 2014-11-02 09:11:43
我甚至都不明白這個問題。哪部分代碼是_encrypting循環counter_? – Barmar 2014-11-02 09:13:09