看看这个有趣的C语言!(帅哥们都来看看啊!)
本帖最后由 旭日东升 于 2011-4-23 17:02 编辑#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define LINE 70
#define COL 80
char inBuf;
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, COL, fp) !=NULL)
{
p = strchr(inBuf, '\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);
fprintf(fp, "%s\n", inBuf);
}
fclose(fp);
}
这是题目
下面是要编写的函数的代码:
int i, j;
for(i=0; i<LINE; i++)
{
for(j=0; j<COL; j++)
{
if(inBuf>='a' && inBuf<='z')
{
if(inBuf == 'a')
{
inBuf = 'z';
}
else
{
inBuf = char(int(inBuf)-1);
}
}
}
} inBuf = char(int(inBuf)-1)
这句话看不太懂!有谁能帮忙讲解下! 感觉很有难度!:L 像是三级等级考试的题目,是不是呀? {:5_107:} 是三级网络技术的题目!
那句话看不太明白! 希望有那个 学过C语言的朋友可以帮忙解释解释! 无能为力,我也 看不 懂 本帖最后由 风扫地 于 2011-3-9 21:54 编辑
你确认这个题目后面的给出的是正确答案?。。
在C语言的类型强制转化不是
(类型)表达式
吗? 回复 9# 风扫地
这我知道!他是用的强制转换!
这题在模拟软件上运行起来是没问题的,答案也是正确的。
但是自己再另外编写个这样的小程序就运行不了了,会出错!
像下面这个程序:
#include <stdio.h>
void main()
{
char x, y;
x = 'a';
y = char(int(x)+1);
printf("%c %c\n", x, y);
} 回复 4# 578786647
嗯 是三级的题目!是全国计算机三级——网络技术! 都学三级了吖,我零级还没学完呢,还是打酱油吧。 先学C,在学C 的网络编程。。{:5_107:} 本帖最后由 追梦1航海 于 2014-3-17 10:03 编辑
额,看清楚了,你给出来的是
inBuf = char(int(inBuf)-1);而不是 inBuf=char(int(inBuf))
还有是已行为单位,inBuf是二维数组啊,inBuf是指向第j+1行的指针啊,指针怎么可以拿来和
if(inBuf>='a' && inBuf<='z')
比大小啊,你给的是错误的结果,然后再问一个错误的问题
哇靠啊!!!!!1出现惊天bug啊!!!!11,inBuf居然自动显示成inBuf二维变一唯啊!!!!!!!!!!!!!!!!!!!!
页:
[1]