У меня возникают проблемы с назначением переменной global_duty
. Все остальные переменные в уравнении назначаются каждый раз. Насколько я могу сказать, текстовая метка duty_out_lab
сбрасывается как минимум дважды. Ive попробовал объявить global_duty
как int
, gint
и gdouble,
, но ничего не работает. В первый раз, когда используется уравнение, он дает правильный ответ, а затем каждый раз он выводит только 0. Все компилируется без каких-либо предупреждений.C Математическое уравнение присваивает переменную правильно только один раз
Вот соответствующий код.
#include <gtk/gtk.h>
int global_ontime;
int global_offtime;
int global_duty;
GtkWidget *duty_out_lab;
static void
set_duty()
{
global_duty = global_ontime/(global_ontime + global_offtime) * 100 ;
gchar *str = g_strdup_printf (" %d percent ", global_duty);
gtk_label_set_text (GTK_LABEL (duty_out_lab), str);
g_free(str);
printf ("On time is %d micro seconds\n", global_ontime);
printf ("Off time is %d micro seconds\n", global_offtime);
printf ("Duty cycle is %d percent \n\n", global_duty);
}
static void
set_ontime (GtkSpinButton *spinbutton, gpointer user_data)
{
gint value1 = gtk_spin_button_get_value_as_int (spinbutton);
global_ontime = value1;
set_duty();
}
static void
set_offtime (GtkSpinButton *spinbutton, gpointer user_data)
{
gint value2 = gtk_spin_button_get_value_as_int (spinbutton);
global_offtime = value2;
set_duty();
}
Выход из терминала
On time is 1 micro seconds
Off time is 0 micro seconds
Duty cycle is 100 percent
On time is 1 micro seconds
Off time is 1 micro seconds
Duty cycle is 0 percent
On time is 1 micro seconds
Off time is 2 micro seconds
Duty cycle is 0 percent
On time is 2 micro seconds
Off time is 2 micro seconds
Duty cycle is 0 percent
GTK выходы
] 2 выход хорошее
1 выход плохо
Пожалуйста, напишите ваши замечания, а не ваши выводы. Если ваша программа производит выходные данные, не описывайте ее в свободной прозе, скопируйте ее и вставьте ее дословно. –
На время составляет 1 мкс время выключения 0 микросекунд Рабочий цикл составляет 100 процентов На время составляет 1 мкс время отключения 1 мкс Рабочий цикл 0 процентов На время составляет 1 мкс время выключения 2 микросекунд Рабочий цикл 0 процентов от времени 2 микросекунд время отключения 2 микросекунд Рабочий цикл составляет 0 процентов – fernny500
, когда я вставил его в формат изменен – fernny500