| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 697 人关注过本帖
标题:[求助]新人来问个题目(把我编的程序发上来了)(已解决)
只看楼主 加入收藏
gxy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-5-25
收藏
 问题点数:0 回复次数:8 
[求助]新人来问个题目(把我编的程序发上来了)(已解决)
现在大一,刚开始学C程序

碰到一个作业题

是c程序设计(第三版)(谭) 7.14这个题目

能否告知怎么做比较好

我做的总有点小问题


题目:
编一个程序,将两个字符串s1和s2比较,若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数.
不要用strcpy函数,两个字符串用gets函数读入.
输出的正数或负数的绝对值应是相比较的两个字符串相应字符的ASCII码的差值.
例如,"A"与"C"相比,由于"A"<"C",应输出负数,同时由于'A'与'C'的ASCII码差值为2,因此应输出"-2".
同理:"And"和"Aid"比较,根据第二个字符比较结果,"n"比"i"大5,因此应输入"5".

输入英文时2个相减和1个相减会出现数值错误

望大家解答一下,谢谢


#include<stdio.h>
#include<conio.h>
void main()
{
char str1[5],str2[5];
int m=0,n=0,y,i,j;
printf("请输入5个以内字符:");
gets(str1);
printf("请再输入5个以内字符:");
gets(str2);
for(i=0;i<5;i++)
m=m+str1[i];
for(j=0;j<5;j++)
n=n+str2[j];
y=m-n;
printf("%d",y);
getch();
}

[此贴子已经被作者于2007-5-25 20:38:56编辑过]

搜索更多相关主题的帖子: 发上 新人 
2007-05-25 19:35
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
收藏
得分:0 
用for加if-else

2007-05-25 19:41
gxy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-5-25
收藏
得分:0 
我是直接相减  都是一个字符相减的时候就显示不正确的数值了

2007-05-25 19:45
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
收藏
得分:0 

这个用函数表示,字符串中如果字母出现比较时,那时不输出零,即不返回一个零,所谓正负,其实从开始起,遇到字母比较时才出现的,如果前者大于后者返回正数,反之是返回是负数,相等时返回为零。

[此贴子已经被作者于2007-5-25 20:12:00编辑过]


2007-05-25 20:10
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:0 
#include<stdio.h>
#include<conio.h>
void main()
{
char str1[5]=null,str2[5]=null;
int m=0,n=0,y,i,j;
printf("请输入5个以内字符:");
gets(str1);
printf("请再输入5个以内字符:");
gets(str2);
for(i=0;i<5;i++)
m=m+str1[i];
for(j=0;j<5;j++)
n=n+str2[j];
y=m-n;
printf("%d",y);
getch();
}
你没有给定初值

偶是菜鸟鸟偶惧WHO?!!!!
2007-05-25 20:13
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:0 
错了不是null
是str1[5]={0},str2[5]={0};

偶是菜鸟鸟偶惧WHO?!!!!
2007-05-25 20:15
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 

你要的是这个吗?
#include <stdio.h>
#include <conio.h>

void main()
{
char ch1[200],ch2[200];
char *p,*q;
gets(ch1);
p=ch1;
gets(ch2);
q=ch2;
while(*p!='\0')
{
if (*p==*q)
{
p++;
q++;
}
else
if (*p<*q)
{
printf("%d\n",-(*q-*p));
break;
}
else
{
printf("%d\n",(*p-*q));
break;
}
}
}


~~我的明天我知道~~
2007-05-25 20:16
gxy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-5-25
收藏
得分:0 
感谢楼上的各位

我先去试试

2007-05-25 20:24
aaaaaqqqqq1
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-6-9
收藏
得分:0 
for(i=0;i<5;i++)
m=m+str1[i];
for(j=0;j<5;j++)
n=n+str2[j];想不明白n是整型,str2[j]是字符,怎么相加呢?

2007-06-09 20:57
快速回复:[求助]新人来问个题目(把我编的程序发上来了)(已解决)
数据加载中...
 
   



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

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