程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言一道題,想不通,幫忙修改一下(急)

C語言一道題,想不通,幫忙修改一下(急)

編輯:C語言問答

C語言一道題,想不通,幫忙修改一下(急)

15 #include<stdio.h>#include<stdlib.h>
int main(){    int array[10000] = {0};    int i=0,j,k,t,m;    int count = 0;    printf("Please input numbers:\n");    for(i=0;i<10000;i++)    {        scanf("%d",array+i);        if(array[i] == -222)        {            count = i;            goto label;        }    }    label:for(j=0;j<i-1;j++)for(k=0;k<i-j-1;k++)if(array[k]>array[k+1]){ t=array[k]; array[k]=array[k+1]; array[k+1]=t; }     for(i=0;i<count;i++)    { if((i+1)%5==0)  {  for(m=-4;m<1;m++)      {                            printf("%-6d,",array[i+m]);  }  } if((i+1)%6==0) {                            printf("%-6d\n",array[i]); }    }    system("pause");    return 0;}要求是排好序後,每六位一行,前五個後有逗號,第六位後就換行自己看程序感覺沒錯,可是輸出有錯,求解答,謝謝哈

最佳回答:

你這程序當i=4+5k(k為整數)時會執行

if((i+1)%5==0)
  {
   for(m=-4;m<1;m++)
   {   
    printf("%-6d,",array[i+m]);
    }
   }

第一次執行會輸出array[0]~array[4],

但第二次執行時i=9,會輸出array[5]~array[9];

array[5]輸出了兩次

你可以這樣改

for(i=0;i<count;i++)
 {
  if((i+1)%6 != 0)
   printf("%-6d,",array[i]); 
  else
     printf("%-6d\n",array[i]);
   }  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved