伪代码->
idealMarks是一个值为80的整数
marksGained是一个值为50的整数
检查marksGained是否大于或等于idealMarks
[如果MarksGained小于理想标记,则打印“重试”更改标记获得等于80
如果marksGained大于或等于理想值,Marks将打印“您得分不错!”
C代码->
#include <stdio.h>
int main()
{
int idealMarks; int marksGained;
for (idealMarks = 80; marksGained = 50; marksGained == idealMarks)
{
printf("You have scored well!");
marksGained = 80;
}
printf("Try Again");
}
当我执行此代码时,它将继续重复打印语句。
我使用以下网站执行我的代码-https://www.onlinegdb.com
for (idealMarks = 80; marksGained = 50; marksGained == idealMarks)
marksGained = 50
始终为真。
int idealMarks = 80;
for( int marksGained = 50; marksGained < idealMarks;)
是您想要的
[Edit:另外,您的打印语句也已切换,请尝试将其放入循环中。
请参见sample
marksGained = 50
,它应该是条件语句marksGained == 50
。for (A; B; C)
D
在此:
A
首先执行。通常用于设置循环的初始状态。
B
在每次迭代之前进行评估,以测试是否继续循环(如果B
评估为“真”或非零)或退出(如果B
评估为“假”或零)。C
在每次迭代后评估。通常,它用于以清晰的方式根据循环的迭代来调整状态。D
是要迭代的语句(通常是复合语句{ … }
)。for
循环中,用marksGained = 50
代替了B
。那是一个赋值表达式;它将50
放入marksGained
。赋值表达式具有一个值;它是存储在左操作数中的值。因此,此B
始终具有值50
。这是非零值,因此for
循环始终会继续。marksGained == idealMarks
代替了C
。那是一个比较。如果两个操作数相等,则结果为“ true”(1),否则为“ false”(0)。它没有其他作用。不使用表达式的值代替C
。因此,此代码对您的程序无效。尚不清楚您打算写什么。我建议您首先只使用if
语句(可能使用do
或while
语句而不是for
语句)进行编写。如果让程序使用这些语句,则可以尝试将do
或while
语句转换为for
语句。