| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 997 人关注过本帖
标题:[求助]请教2题习题,大家给点思路!!
只看楼主 加入收藏
liu21008017
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-4-25
收藏
 问题点数:0 回复次数:14 
[求助]请教2题习题,大家给点思路!!

设数组
1. s[7][12]={"HeFei","AnQing","FuYang","HuaiBei","WuHu","MaAnShan","HuaiLan"};
存放省内部分城市的名称,编程实现按字典顺序重新排列城市名称在数组中的位置

老师说要用strcmp函数,但是他讲strcmp函数很简单的讲了下,我也不是很懂

2. 已知a[4][4]是一个整形数组,编程求两条对角线上的最大元素及所在的位置


老师布置的题目```不会写````
大家帮帮忙
我这学期刚开C语言

搜索更多相关主题的帖子: 习题 思路 
2007-04-25 19:12
liu21008017
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-4-25
收藏
得分:0 

我很急呀```
明天交的作业````
帮帮我呀

2007-04-25 19:42
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 


#include<stdio.h>
void main(){
int nArray[4][4] = {1,2,3,4,5,6,7,8,9,0,11,12,12,14,13,19};

int nMax = 0;
for(int nRow =0;nRow<4;nRow++)
{
for(int nCol = 0;nCol<4;nCol++)
{
if((nRow+nCol==3)||(nRow==nCol)&&(nMax<nArray[nRow][nCol]))
{
nMax = nArray[nRow][nCol];
}
}
}
printf("%d",nMax);
}

路过!帮你做了一题


感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2007-04-25 19:48
liu21008017
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-4-25
收藏
得分:0 
谢谢
你真的好强悍啊
那个a[4][4]用scanf输入也可以吧
((nRow+nCol==3)||(nRow==nCol)&&(nMax<nArray[nRow][nCol]))
看晕啦
我是很低级的
才上了2个月C语言
每个星期4堂而已呀````
2007-04-25 19:52
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 
第一题给你点思路,你要是实在写不出来我看见你的回贴我再把答案写出来,
写程序是要自己多敲代码的!

STRCMP是串比较函数,用它比较两个字符串的大小,一般是以ASCII码来比较,
这个题目类似与刚才我写的题目但他的算法比较简单,在if里只用写两行字符串
的首地址即可!

感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2007-04-25 20:00
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 
当然可以用SCANF输入,不过这样有点麻烦,因为你定义的不是字符串数组!要输入16次才会都不是非0的数字

感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2007-04-25 20:14
liu21008017
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-4-25
收藏
得分:0 
strcmp函数不能比较3个以上的数么
流星雨```不好意思,可能有点不尊重你啦
我把你的程序改了一下,因为运行时有错误那个Row+Col==5好像不是3吧
还有你那些写的太牛啦,我只会用简单的英文````呵呵
没那么专业
但是这个程序运行还是有点错误```他输出的是64`````
不知道是哪里错了呀
还有第一题我真的不会
拜托指点下````谢谢先啦``
真的很感谢你````
#include<stdio.h>
void main()
{
int a[4][4];
int Max=0,Row,Col;
scanf("%d",&a[4][4]);
for(Row=0;Row<4;Row++)
{
for(Col=0;Col<4;Col++)
{
if((Row+Col==5)||(Row==Col)&&(Max<a[Row][Col]))
{
Max=a[Row][Col];
}
}
}
printf("Max=%d,Row=%d,Col=%d",Max,Row,Col);
}
2007-04-25 20:28
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 
strcmp函数不能比较3个以上的数么;->你可以用嵌套的形式比较strcmp(C1,strcmp(C2,C3))
我把你的程序改了一下,因为运行时有错误那个Row+Col==5好像不是3吧;->数组的下标定义的时候是从1开始,但
使用的时候是从0开始的,
1234
5678
0000
0000
比如上边那个矩阵数字值为一的地址下标是[0][0];
所以对角线的下标是[0][3];[1][2];[2][1];[3][0];所以Row+Col==3;其中nRow是行nCol是列!
第一题你试着写一下!这个比我做出来的题目简单!

感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2007-04-25 20:45
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 
scanf("%d",&a[4][4]);这里错了,这里下标越界!
要输入数组,你只有用循环来输入!

感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2007-04-25 20:49
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 
void main(){
int nA = 1;
int nArray[4][4];
for(int nIrow =0;nIrow<4;nIrow++)
{
for(int nIcol = 0;nIcol<4;nIcol++)
{

printf("请输入16个数字,这是第%d个",nA);
scanf("%d",&nArray[nIrow][nIcol]);
nA++;
}
}

int nMax = 0;
for(int nRow =0;nRow<4;nRow++)
{
for(int nCol = 0;nCol<4;nCol++)
{
if((nRow+nCol==3)||(nRow==nCol)&&(nMax<nArray[nRow][nCol]))
{
nMax = nArray[nRow][nCol];
}
}
}
printf("这个是对角线上最大的元素:%d\n",nMax);
}
运行成功了,很详细,交作业这个题目是没有问题的!

感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2007-04-25 21:10
快速回复:[求助]请教2题习题,大家给点思路!!
数据加载中...
 
   



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

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