#include <stdio.h>main(){ int i,j,m; for(j=1;j<10;j++) { for(i=1;i<=j;i++) m=i*j; /*用m為什么不可以?*/ printf("%d*%d=%d\t",i,j,m); printf("\n"); }}打印出來的結果根本不對,而不用m直接用i*j就可以,哪位高人能告訴我為什么嗎?謝謝!小弟我不勝感激!

熱心網友

for語句如果不帶有大括號({ }),其只對第一句進行循環計算。在給出的程序中,第二個for語句循環有兩個語句,故在程序中加上一對大括號就可以了。#include main(){int i,j,m;for(j=1;j<10;j++){for(i=1;i<=j;i++){m=i*j; printf("%d*%d=%d\t",i,j,m);}printf("\n");}}

熱心網友

將你的程序改為如下格式,就可以解決問題。你原來的程序中i的for循環缺少大括號({}),該語句的尾部也沒有分號(;),也就是說該循環體只有一句〖m=i*j;〗,而〖printf("%d*%d=%d\t",i,j,m);〗語句僅在j的for循環中執行。#include main(){ int i,j,m; for(j=1;j<10;j++){ for(i=1;i<=j;i++){ m=i*j; printf("%d*%d=%d\t",i,j,m); } printf("\n"); }}