| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 689 人关注过本帖
标题:求大神指正我错在哪
只看楼主 加入收藏
死神之吻
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-3-18
结帖率:75%
收藏
已结贴  问题点数:40 回复次数:8 
求大神指正我错在哪
#include<stdlib.h>
#include<stdio.h>

int main(void)
{
    char a[200];
    char b[70],c[70],d[70];
    int i,j,k,l=0;
    printf("Please input your short message:\n");
    gets(a);
    l=sizeof(a)/sizeof(a[0]);
    if(0<l<=70)
    {
        for(j=0;j<l;j++)
        {
            b[j]=a[j];
        }
    }
    if(70<l<=140)
    {
        for(j=0,k=70;k<l;j++,k++)
        {
            c[j]=a[k];
        }
    }
    if(140<l<=200)
    {
        for(j=0,k=140;k<l;j++,k++)
        {
            d[j]=a[k];
        }
    }
    printf("send:\n");
    if(0<l<=70)
    {
        printf("1.");
        puts(b);
    }
    if(70<l<=140)
    {
        printf("\n");
        printf("2.");
        puts(c);
    }
    if(140<l<=200)
    {
        printf("\n");
        printf("3.");
        puts(d);
    }
   
    system("pause");
    return 0;
}

作业要求:
手机可以收发的短信都以70字为限,当用户编写超过70字的短信发送时,手机系统将信息自动分割为70字(不满70也算一条)一条的短信,请模拟该功能编写程序


运行效果:

Please input your short message:

I know you can do it, but you failed at least. Now you have worked for three years and earn much money, and buy a house.

send:
1. I know you can do it, but you failed at least. Now you have worked for
2. three years and earn much money, and buy a house.

请按任意键继续_
搜索更多相关主题的帖子: message include 
2013-06-02 20:56
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:5 
1、l的值就不合逻辑,应该用strlen
2、条件判断方式不对,依你这逻辑只能输出最后一条

重剑无锋,大巧不工
2013-06-02 21:34
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:5 
不是数学,不能这样写的0<l<=70
2013-06-02 21:43
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:5 
我觉得你可以考虑用一个数组a[200],做这道题!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-06-02 21:52
梁朝斌
Rank: 4
等 级:业余侠客
帖 子:192
专家分:288
注 册:2012-10-21
收藏
得分:5 
我看看

菜鸟也疯狂
2013-06-02 21:54
蓝天时代
Rank: 2
等 级:论坛游民
帖 子:30
专家分:47
注 册:2013-4-25
收藏
得分:5 
l=sizeof(a)/sizeof(a[0])
 这个地方有问题。我试了一下。
   #include<stdio.h>
   main()
   {
   char a[200];
   int l,j,k;
   l=sizeof(a);
   j=sizeof(a[0]);
   k=sizeof(a)/sizeof(a[0]);
   printf("a=%d a[0]=%d a/a[0]=%d",l,j,k);
  getch();
  }
运行结果:a=200 a[0]=1 a/a[0]=200

我也是刚学,希望对你有用。。
2013-06-02 22:00
小飞蛋
Rank: 2
来 自:江西财经大学
等 级:论坛游民
帖 子:9
专家分:20
注 册:2012-12-21
收藏
得分:5 
看我的细节 l=sizeof(a)/sizeof(&a[0]);
if(0<l<=70)改成if(l>0&&l<=70)

追求C的言语。希望可以用TA来解释我的世界。
2013-06-04 13:10
dengluoy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:127
专家分:165
注 册:2013-2-5
收藏
得分:5 
你要明天sizeof()是做什么的,?
你应该把sizeof()改成strlen()
同时你的条件语句错误。。

一同学习, 一同进步
2013-06-04 15:42
wo3333022
Rank: 2
等 级:论坛游民
帖 子:15
专家分:14
注 册:2013-6-5
收藏
得分:5 
你想无线流? 0<l<70
    只要l>0 成立 就为1 ;1<70恒成立
2013-06-05 21:57
快速回复:求大神指正我错在哪
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035233 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved