http://m.qpic.cn/psb?/V13pezsi3OMnw9/yF.e9tBU2UKlAgs3Um.ymu8eu8ZpsLtdSD66G*Vx4OY!/b/dLYAAAAAAAAA&bo=KwIAAisCAAIDFzI!&rf=viewer_4
这个程序很奇怪,有时运行结果正确,有时错误。但是我的思路应该是没问题的。下面是我最后修改的代码。
#include <stdio.h>
#include <string.h>
#define MAX_REMIND 50
#define MSG_LEN 60
int main()
{
char reminders={0};
char day_str={0},msg_str={0};
int day={0},i,j=0,num_remind=0,ch,len=0,tx,suoyin;
char *p,*px;
for(;;)
{
printf("Enter the day and reminder:");
scanf("%d",&day);
if(day==0)
break;
while(day>99)
day/=10;
sprintf(day_str,"%2d",day);
i=1;
msg_str=' ';
while((ch=getchar())!='\n')
msg_str=ch;
msg_str='\0';
strcat(strcpy(reminders,day_str),msg_str);
j++;
}
len=j;
for(i=0;i<len;i++)
{
p=reminders;
}
for(i=0;i<len-1;i++)
{
int min=day; //先找到数组day[]最小的值,标记索引位置
for(j=i+1;j<len;j++)
{
if(min>day)
{
min=day;
suoyin=j;
}
}
tx=day; //将day[]中每个数字以及其对应信息同时移动位置
day=min;
day=tx;
px=p;
p=reminders;
p=px;
}
for(i=0;i<len;i++)
printf("%-7d%s\n",day,p);
return 0;
}
页:
1
[2]