我的代码如下:
#include <ctype.h>
#include <cs50.h>
#include <stdio.h>
#include <string.h>
int points[] = {1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10};
int compute_score(string word);
int main(void)
{
string word1 = get_string("Player 1: ");
string word2 = get_string("Player 2: ");
int score1 = compute_score(word1);
int score2 = compute_score(word2);
if (score1 > score2)
{
print("Player 1 wins! \n");
}
else if (score2 > score1)
{
print("Player 2 wins! \n");
}
else
{
print("Tie! \n");
}
}
int compute_score(string word)
{
int score = 0;
for (int i = 0, len = strlen(word); i < len; i++)
{
if isupper(word[i])
{
score += points[word[i] - "A"];
}
else
{
score += points[word[i] - "a"];
}
}
return score;
}
我期望它能够执行,但我仍然不知道为什么它没有执行。当我尝试运行该文件时,它一直显示“权限被拒绝”,尽管“make”功能工作正常。有什么想法吗?
这是因为您没有
Execution Permission
该文件。
如果你这样做
ls -la
你会看到这样的东西:
drwxr-xr-x 2 hexatech hexatech 4096 Feb 14 09:01 .
drwxr-xr-x 4 hexatech hexatech 4096 Feb 13 13:51 ..
-rwxr-xr-x 1 hexatech hexatech 511 Feb 13 14:45 Makefile
-rw-r--r-- 1 hexatech hexatech 347 Feb 14 09:00 main.c
左边部分
drwxr-xr-x
告诉有关文件的信息。
开始处的
d
代表 Directory
,rwx
代表 read
、write
和 execution
。
您有3次
rwx
,顺序是User
、group
、other
。
您可以使用
chmod
命令更改文件权限。
欲了解更多信息,请使用
chmod --help
或/和 man chmod
。
当您使用
make
时,会调用 Makefile
并为您设置该权限。