#include <stdio.h>
int printMenu(int);
int studentglobal;
float getCarryMark(float);
float cm1;
main()
{
printf("-----------------------------------------------------\n");
printf("\t\tTotal Score calculator\n");
printf("-----------------------------------------------------\n");
int counter, x, studentcount = 1,sum = 0 ;
x = printMenu(studentglobal);
for (counter = 0; counter < x; counter++)
{
studentcount = studentcount + counter;
printf("Student : %d \n", studentcount);
getCarryMark(cm1);
if (cm1 >= 0 && cm1 <= 50)
{
printf("right range!!\n");
}
else
{
printf("INVALID RANGE!!!\n");
}
printf("%.2f\n", cm1);
}
}
int printMenu(int nstudent)
{
printf("Enter no of student: ");
scanf("%d", &nstudent);
return(nstudent);
}
float getCarryMark(float carrymark)
{
printf("Enter your carrymarks: ");
scanf("%f", &carrymark);
return(carrymark);
}
实际上,当我输入200时,它会显示INVALID RANGE!!!
,但是当我输入20时,它仍会显示INVALID RANGE!!!
。它以某种方式跳过了if语句。如果我有任何错误请告诉我,请不要打扰其他部分。 ert gf dfg dgd dg dfgd gd dg dg dgdfg
答案 0 :(得分:4)
您需要从getCarryMark返回carrymark:
float getCarryMark(float carrymark)
{
printf("Enter your carrymarks: ");
scanf("%f", &carrymark);
return(carrymark);
}
答案 1 :(得分:3)
你在getCarryMarks方法中缺少一个return语句!
答案 2 :(得分:2)
你错过了getCarryMark中的return语句
答案 3 :(得分:2)
getCarryMark 函数按值获取参数,修改该值并将其返回,但是,从不使用返回的值。修改参数的值并不会将此更改反映到外部,因为它已通过值传递。
我已经部分更新了代码,以便它可以执行if语句。请尝试以下代码。
out[:] = ...