【发布时间】:2015-11-25 22:45:29
【问题描述】:
我正在尝试用 C 语言编写一个程序(出于学校目的),该程序从区间 [0, 99] 中读取数字,并从中制作一个茎叶图,在一行的开头有十位,然后是所有单位。
这里是输入示例:
1 2 5 2 25 27 93 4 93 93 58 51
输出应该是:
0 | 12245
2 | 57
5 | 18
9 | 333
这是我的代码:
// uloha-9-5.c -- Tyzden 9 - Uloha 5
// Adam Kotvas, 18.11.2015 10:02:12
#include <stdio.h>
int main()
{
int n[100],i=0,j=0,l=0,desiatky[10],temp=0,k=0;
while(scanf("%d",&n[i])>0)
{
if(n[i]>99 || n[i]<0){
continue;
}
i++;
}
for(j=0;j<=10;j++)
{
desiatky[j]=0;
}
for(j=0;j<i;j++)
{
desiatky[(n[j]/10)%10]=1;
}
for(k=0;k<i;k++)
{
for(j=0;j<i;j++)
{
if(n[j]>n[j+1] && j!=i-1)
{
temp=n[j];
n[j]=n[j+1];
n[j+1]=temp;
}
}
}
for(j=0;j<10;j++)
{
if(desiatky[j]==1)
{
printf("%d | ",j);
for(l=0;l<i;l++)
{
if((n[l]/10)%10==j)
printf("%d",n[l]%10);
}
printf("\n");
}
}
return 0;
}
问题是它适用于给定间隔内的所有数字,但是当我尝试提交它时,它显示错误输出:(。你知道这个程序可能有什么问题吗?
【问题讨论】:
-
“当我尝试提交它时,它说输出错误” 那么这是一个自动挑战吗?如果是这样,那么输出格式可能不是完全问题所要求的。
-
我根据您的意思是 stem-and-leaf 图而不是直方图的假设编辑了问题。如果这不是您的意思,请随意编辑它。
标签: c arrays algorithm for-loop