我试了几次,怀疑这段代码不能输出数字0,这让我无法理解,所以希望大佬解析本代码的步骤意义,或者解释为什么不会输出0;
以下为尝试步骤:
①当第一个for循环的内容为a=0;且scanf输入的数字全为零时,程序不输出任何数字;
②当第一个for循环的内容为a=0;且scanf输入的5个数字不含零时,程序输出这五个非零的数; ③当第一个for循环的内容为a=1;且scanf输入的5个数字全为零时,程序输出1、2、3~9(共9组数字);
④当第一个for循环的内容为a=2;且scanf输入的5个数字全为零时,程序输出11、22、33~99(共18组数字);
⑤当第一个for循环的内容为a=2;且scanf输入的5个数字不含零(这里以1、1、3、4、2为例)时,程序输出1、1、2、3、4、11、22、33~99(共18+5组数字);
以下为代码: #include <stdio.h> #include <stdlib.h> int main() { int a[10],i,t,j;
for(i=1;i<=9;i++) a=0;
for(i=1;i<=5;i++) { scanf("%d",&t); a[t]++;}
for(i=1;i<=9;i++) { for(j=1;j<=a;j++) printf("%d",i); }
system("pause"); return 0;
谢谢大佬帮忙。 |