Im在分配變量global_duty
時遇到問題。等式中的所有其他變量都是每次分配的。據我所知,文本標籤duty_out_lab
重置至少兩次。我試圖宣佈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