error - [-Werror,-Wunused-value] - 不知道是什么意思
error - [-Werror,-Wunused-value] - don't know what it means
#include <stdio.h>
#include <cs50.h>
#include <string.h>
#include <math.h>
int letters = 0;
int words = 0;
int sentences = 0;
int main(void)
{
string text = get_string("Text: ");
printf("\n");
for(int j = 0; j < strlen(text); j++)
{
if((text[j] >= 'a' && text[j] <= 'z') || (text[j] >= 'A' && text[j] <= 'Z'))
{
letters++;
}
if(text[j] == ' ')
{
words++;
}
if(text[j] == '.' || text[j] == '!' || text[j] == '?')
{
sentences++;
}
}
printf("Letters: %i\n", letters);
printf("Words: %i\n", words);
printf("Sentences: %i\n", sentences);
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
printf("%f\n", result);
~/pset1/readability/ $ make readability
clang -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow readability.c -lcrypt -lcs50 -lm -o readability
readability.c:36:30: error: expression result unused [-Werror,-Wunused-value]
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
^~~~~~~~~
readability.c:36:41: error: expression result unused [-Werror,-Wunused-value]
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
^~~~~~~
readability.c:36:68: error: expression result unused [-Werror,-Wunused-value]
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
^~~~~~~~~
readability.c:36:79: error: expression result unused [-Werror,-Wunused-value]
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
^~~~~
4 errors generated.
<builtin>: recipe for target 'readability' failed
make: *** [readability] Error 1
有人可以帮助我吗?我对自己做错了什么感到非常困惑。我正在尝试使用 Coleman-Liau 索引公式(索引 = 0.0588 * L - 0.296 * S - 15.8 - L 是文本中每 100 个单词的平均字母数,S 是文本中每 100 个单词的平均句子数正文。)
("%i / %i", letters, words)
这并不像您想象的那样工作,您对 printf
函数采用的参数感到困惑。如果需要除法,单独使用/
即可:letters / words
.
由于这些是整数,您可能想要一个带小数部分的比率,将其中一个变量转换为浮点数或双精度数也是一个好主意:letters / (double) words
#include <stdio.h>
#include <cs50.h>
#include <string.h>
#include <math.h>
int letters = 0;
int words = 0;
int sentences = 0;
int main(void)
{
string text = get_string("Text: ");
printf("\n");
for(int j = 0; j < strlen(text); j++)
{
if((text[j] >= 'a' && text[j] <= 'z') || (text[j] >= 'A' && text[j] <= 'Z'))
{
letters++;
}
if(text[j] == ' ')
{
words++;
}
if(text[j] == '.' || text[j] == '!' || text[j] == '?')
{
sentences++;
}
}
printf("Letters: %i\n", letters);
printf("Words: %i\n", words);
printf("Sentences: %i\n", sentences);
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
printf("%f\n", result);
~/pset1/readability/ $ make readability
clang -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow readability.c -lcrypt -lcs50 -lm -o readability
readability.c:36:30: error: expression result unused [-Werror,-Wunused-value]
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
^~~~~~~~~
readability.c:36:41: error: expression result unused [-Werror,-Wunused-value]
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
^~~~~~~
readability.c:36:68: error: expression result unused [-Werror,-Wunused-value]
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
^~~~~~~~~
readability.c:36:79: error: expression result unused [-Werror,-Wunused-value]
float result = 0.0588 * ("%i / %i", letters, words) - 0.269 * ("%i / %i", words, sentences) - 15.8;
^~~~~
4 errors generated.
<builtin>: recipe for target 'readability' failed
make: *** [readability] Error 1
有人可以帮助我吗?我对自己做错了什么感到非常困惑。我正在尝试使用 Coleman-Liau 索引公式(索引 = 0.0588 * L - 0.296 * S - 15.8 - L 是文本中每 100 个单词的平均字母数,S 是文本中每 100 个单词的平均句子数正文。)
("%i / %i", letters, words)
这并不像您想象的那样工作,您对 printf
函数采用的参数感到困惑。如果需要除法,单独使用/
即可:letters / words
.
由于这些是整数,您可能想要一个带小数部分的比率,将其中一个变量转换为浮点数或双精度数也是一个好主意:letters / (double) words