我試著將題目跑了一下,有一點問題
#include <stdio.h>
int main()
{
int a = 3;
int b = 4;
char result;?
result = a + b % a - b / a + a * b - a ++;
printf("%d\n",result);
printf("a = %d\n",a);
return 0;
}
這是正常跑的,輸出也是正常答案。
#include <stdio.h>
int main()
{
int a = 3;
int b = 4;
char result;?
result = a + b % a - b / a + a * b - a ++;
printf("result\n");
printf("a = %d\n",a);
return 0;
}
為何這個輸出的是 ?result
? ? ? ? ? ? ? ? ? ? ? ? ? ? a = 4
printf()中間輸出的有什么規定么
2015-05-29
怎么答不對問??printf是格式化輸出函數 你上面說輸出正常的代碼 確定正常嗎 我表示懷疑 看代碼你會了解的
#include?<stdio.h> int?main() { int?a=3; int?b=4; printf("a?=?%d;b=%d\n",a,b);//輸出a?=?3;b=4 printf("a?=?;b=\n");//輸出?a?=?;b= printf("result\n");//輸出result /* 第一個%d表示整形變量a的值 第二個%d表示整形變量b的值 如果后面還跟個%f什么的?那么后面跟在b變量后面就是浮點型變量了 都是一一對應的 printf("result\n")沒有相關替代符,后面參數也沒跟上變量或值所以直接當字符串輸出 還有你第一遍說運行正常里面的代碼?char?result?應該是int?result?定義成整形變量而不是字符型?學c?數據類型千萬別弄錯 至于你為什么不出錯我也奇怪可能是對數值型字符型變量要求不嚴格?直接當成整形了?我也是新手?忘大牛解釋為什么不出錯 */ return?0; }2015-05-27
在給一個變量賦值的時候使用++a或者 a++ 在此表達式后都會為a的值加1,(區別在于在賦值的時候是否計算a++或者++a的值)
printf是直接輸出括號里的內容的,result當然會輸出。a=4,你使用了表達式當然會輸出a=4.明白嗎?