关于“打印时除了最后一个数不带逗号外其他数后面都带逗号”的问题

来源:6-5 数组的应用(一)

天阶夜色

2018-09-01 11:07

 

这段代码哪里错了,我写了两段代码,一段不管最后一个数字后面的逗号,

一段特别将最后一个字的逗号去掉,但是第二段代码运行的不是想象中的结果

两者只有加粗处有区别


下面是第一段代码:

#include<stdio.h>
int main()
{
     int i;
     int score[]={67,98,75,63,82,79,81,91,66,84};
     jiangxu(score);
     printf("降序排列为:");
     for(i=0;i<10;i++)
     {
          printf("%d,",score[i]);
      }
     return 0;
 }
int jiangxu(int score[])
{
     int i,j;
     int temp=0;
     for(i=8;i>=0;i--)
     {
          for(j=0;j<=i;j++)
          {
               if(score[j]<score[j+1])
               {
                    temp=score[j];
                    score[j]=score[j+1];
                    score[j+1]=temp; 
               }
          }
     }
}

结果为:https://img2.mukewang.com/5b8a01f80001a34103780067.jpg

下面是第二段代码:

#include<stdio.h>
int main()
{
     int i;
     int score[]={67,98,75,63,82,79,81,91,66,84};
     jiangxu(score);
     printf("降序排列为:");
     for(i=0;i<10;i++)
     {
          if(i=9)
              printf("%d\n",score[i]);
          else
              printf("%d,",score[i]);

      }
      return 0;
 }
int jiangxu(int score[])
{
     int i,j;
     int temp=0;
     for(i=8;i>=0;i--)
     {
          for(j=0;j<=i;j++)
          {
               if(score[j]<score[j+1])
               {
                    temp=score[j];
                    score[j]=score[j+1];
                    score[j+1]=temp; 
               }
          }
     }
}

结果为:https://img1.mukewang.com/5b8a021d000181f203600075.jpg



写回答 关注

1回答

  • Starry_夜
    2018-09-04 15:26:23

    例子里的是用if   else 解决的,(i != 9)为最后面的数,用else输出放在最后,注意他的else输出为 printf("%.2f", arr[i]); 没有都逗号的

    Starry... 回复天阶夜色

    不知道是不是我理解错了你的问题(⊙o⊙)! 如果你是想问为什么最后打印出的数的最后没有逗号的话。 那是因为 if(i != 9) printf("%.2f, ", arr[i]); 这句是有逗号的 else printf("%.2f", arr[i]); 是没有逗号的 因为这句for语句是打印输出作用的,在i != 9 就是最后一个了,所以执行else,于是这个数字后就没有逗号

    2018-09-04 16:25:16

    共 3 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926288 学习 · 20799 问题

查看课程

相似问题