鱼C论坛

 找回密码
 立即注册
查看: 4179|回复: 14

看看这个有趣的C语言!(帅哥们都来看看啊!)

[复制链接]
发表于 2011-3-8 23:41:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 旭日东升 于 2011-4-23 17:02 编辑

6E}[1[}S$BNE}JNP9O{WJXO.jpg
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define LINE 70
#define COL 80
char inBuf[LINE][COL];
int totleLine = 0;    //文章的总行数

int readData(void);
void writeData(void);

void replaceChar()
{

}

void main()
{
        system("CLS");
        if(readData())
        {
                printf("IN.DAT can't be open!\n\007");
                return;
        }
        replaceChar();
        writeData();
}

int readData(void)
{
        FILE *fp;
        int i = 0;
        char *p;
        if((fp = fopen("IN.DAT", "r")) ==NULL) return 1;
        while(fgets(inBuf[i], COL, fp) !=NULL)
        {
                p = strchr(inBuf[i], '\n');
                if(p) *p = 0;
                i++;
        }
        totleLine = i;
        fclose(fp);
        return 0;
}
void writeData(void)
{
        FILE *fp;
        int i;
        fp = fopen("OUT.DAT", "w");
        for(i = 0; i < totleLine; i++)
        {
                printf("%s\n", inBuf[i]);
                fprintf(fp, "%s\n", inBuf[i]);
        }
        fclose(fp);
}
这是题目
下面是要编写的函数的代码:
        int i, j;
        for(i=0; i<LINE; i++)
        {
                for(j=0; j<COL; j++)
                {
                        if(inBuf[i][j]>='a' && inBuf[i][j]<='z')
                        {
                                if(inBuf[i][j] == 'a')
                                {
                                        inBuf[i][j] = 'z';
                                }
                                else
                                {
                                        inBuf[i][j] = char(int(inBuf[i][j])-1);
                                }
                        }
                }
        }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-8 23:43:33 | 显示全部楼层
inBuf[i][j] = char(int(inBuf[i][j])-1)
这句话看不太懂!  有谁能帮忙讲解下!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-9 00:58:13 | 显示全部楼层
感觉很有难度!:L
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-9 13:18:29 | 显示全部楼层
像是三级等级考试的题目,是不是呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-9 13:25:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-9 18:10:19 | 显示全部楼层
是三级网络技术的题目!
那句话看不太明白!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-9 18:11:27 | 显示全部楼层
希望有那个   学过C语言的朋友可以帮忙解释解释!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-9 19:31:23 | 显示全部楼层
无能为力,我也 看不 懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-9 21:02:43 | 显示全部楼层
本帖最后由 风扫地 于 2011-3-9 21:54 编辑

你确认这个题目后面的给出的是正确答案?。。
在C语言的类型强制转化不是
(类型)表达式
吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-10 08:23:33 | 显示全部楼层
回复 9# 风扫地


    这我知道!  他是用的强制转换!
这题在模拟软件上运行起来是没问题的,答案也是正确的。
但是自己再另外编写个这样的小程序就运行不了了,会出错!
像下面这个程序:
#include <stdio.h>

void main()
{
        char x, y;
        x = 'a';
        y = char(int(x)+1);
        printf("%c %c\n", x, y);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-10 08:27:55 | 显示全部楼层
回复 4# 578786647


    嗯   是三级的题目!  是全国计算机三级——网络技术!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-14 10:50:20 | 显示全部楼层
都学三级了吖,我零级还没学完呢,还是打酱油吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-17 11:04:23 | 显示全部楼层
先学C,在学C 的网络编程。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2014-3-17 10:01:38 | 显示全部楼层
本帖最后由 追梦1航海 于 2014-3-17 10:03 编辑

额,看清楚了,你给出来的是
inBuf[j] = char(int(inBuf[j])-1);而不是 inBuf[j][i]=char(int(inBuf[j][i]))
[i][i][i][i][i]还有是已行为单位,inBuf是二维数组啊,inBuf[j]是指向第j+1行的指针啊,指针怎么可以拿来和
if(inBuf[j]>='a' && inBuf[j]<='z')
比大小啊,你给的是错误的结果,然后再问一个错误的问题
[/i][/i][/i][/i][/i]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-17 10:04:23 | 显示全部楼层
哇靠啊!!!!!1出现惊天bug啊!!!!11,inBuf[j][i]居然自动显示成inBuf[j]二维变一唯啊!!!!!!!!!!!!!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 21:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表