jiuyuan 发表于 2019-8-13 14:36:47

http://m.qpic.cn/psb?/V13pezsi3OMnw9/.EdtSeypOo79*xeceapSo0gSCyqTvQb0qeZRK6wwpfs!/b/dDYBAAAAAAAA&bo=kQJyApECcgIDFzI!&rf=viewer_4
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]
查看完整版本: 使用字符数组处理字符串变量