| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1219 人关注过本帖, 1 人收藏
标题:knocker这题你还没有教会我啊!
只看楼主 加入收藏
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏(1)
 问题点数:0 回复次数:8 
knocker这题你还没有教会我啊!

/*该程序接受5个城市过去五年的年平均气温,显示每个城市的最高和最低气温,使用函数 来确定最高和最低气温.*/ #include <stdio.h> #include <string.h> int wendu(int wulian[]); void main() { char cty[5][20]; int wd1[5][5],wd2[5][5]; static int i,j; for(i=0;i<5;i++) { printf("请输入第[%d]个城市名:",i++); scanf("%s",cty); for(j=0;j<5;j++) { printf("请输入第[%d]年平均温度:",i+1); scanf("%d",&wd1[i][j]); } printf("\n"); } /*现在开始调用函数,我这里就有点不清楚了,我不知道是一次性将5组数据全传进来, 还是一次传五个,用for语句调用5次函数,如果一次传5组数据,那下面的函数定义的 是不是有问题啊,因为定义的函数只是一个一维数组,而main函数里却是定义的是一个 二维数组,还有就是怎么样用for语句来调用5次函数来分别显示最高气温和最低气温. 怎么样一次调用而全部显示五个城市的最高气温和最低气温, 请大家帮我把程序补充一下,谢谢大家!*/ }

int wendu(int wulian[]) { static int i,j,temp; for(i=0;i<4;i++) for(j=1;j<5;j++) { if(wulian[i]>wulian[j]) { temp=wulian[i]; wulian[i]=wulian[j]; wulian[j]=temp; } } i=0; return (wulian[i],wulian[i+4]);//不知道这样表示对不对啊? }

[此贴子已经被作者于2004-06-20 14:46:06编辑过]

搜索更多相关主题的帖子: knocker 教会 int 气温 
2004-06-16 21:35
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用当当在2004-06-16 21:35:20的发言:

/*该程序接受5个城市过去五年的年平均气温,显示每个城市的最高和最低气温,使用函数 来确定最高和最低气温.*/ #include <stdio.h> #include <string.h> int wendu(int wulian[]); void main() { char cty[5][20]; int wd1[5][5],wd2[5][5]; static int i,j; for(i=0;i<5;i++) { printf("请输入第[%d]个城市名:",i++); scanf("%s",cty); for(j=0;j<5;j++) { printf("请输入第[%d]年平均温度:",i+1); scanf("%d",&wd1[i][j]); } printf("\n"); } /*现在开始调用函数,我这里就有点不清楚了,我不知道是一次性将5组数据全传进来, 还是一次传五个,用for语句调用5次函数,如果一次传5组数据,那下面的函数定义的 是不是有问题啊,因为定义的函数只是一个一维数组,而main函数里却是定义的是一个 二维数组,还有就是怎么样用for语句来调用5次函数来分别显示最高气温和最低气温. 怎么样一次调用而全部显示五个城市的最高气温和最低气温, 请大家帮我把程序补充一下,谢谢大家!*/ }

int wendu(int wulian[])//传入的是数组的首址 int wulian[][5] { static int i,j,*temp; for(i=0;i<4;i++) for(j=1;j<5;j++)//0到那儿去了? { if(wulian[i]>wulian[j])//错wulian[i]是地址,不是数据 { temp=wulian[i]; wulian[i]=wulian[j]; wulian[j]=temp; } } i=0; return (wulian[i],wulian[i+4]);//不知道这样表示对不对啊? 错!return只能返回一次 }


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-06-16 23:46
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 

那这题是不是应该用指针做比较好点啊,

我下面的函数部分只是起排序的作用啊,然后将排好序后的第一个元素和最后一个元素返回去就行了啊.那应该怎样搞啊.我的意思是将上面的数据分成五行分别传进来,每次传一行(也就是五个温度),这样不行吗?

[此贴子已经被作者于2004-06-17 00:05:47编辑过]


学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2004-06-17 00:00
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
其实,在子函数中的操作和主函数是一样的,没有区别,要注意的是,传入的是指针或数组的地址。此例中,你传入的是地址,不必返回什么。

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-06-17 00:16
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 

#include <stdio.h> #include <string.h> int wendu(int wulian[][]); void main() { char cty[5][20]; int wd1[5][5],wd2[5][5]; static int i,j;

for(i=0;i<5;i++) { printf("请输入第[%d]个城市名:",i+1); scanf("%s",cty); for(j=0;j<5;j++) { printf("请输入第[%d]年平均温度:",j+1); scanf("%d",&wd1[i][j]); } printf("\n"); } wd2[5][5]=wendu(wd1); for(i=0;i<5;i++) printf("%s的最低温度是%d\n最高温度是%d\n",cty[i],wd2[i][0],wd2[i][4]);

}

int wendu(int wulian[][]) { static int i,j,temp; for(i=0;i<4;i++) for(j=0;j<5;j++) { if(wulian[i][j]>wulian[i][j+1]) { temp=wulian[i][j]; wulian[i][j]=wulian[i][j+1]; wulian[i][j+1]=temp; } }

return ; }

我改了一下,但是还是不行啊,晕死自己了,太笨了!


学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2004-06-17 11:41
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

#include <stdio.h> #include <string.h> void wendu(int wulian[][5]); //**** void main() { char cty[5][20]; int wd1[5][5];/*,wd2[5][5];*/ static int i,j;

for(i=0;i<5;i++) { printf("请输入第[%d]个城市名:",i+1); scanf("%s",cty[i]);/*****/ for(j=0;j<5;j++) { printf("请输入第[%d]年平均温度:",j+1); scanf("%d",&wd1[i][j]); } printf("\n"); } /* wd2[5][5]=*/ wendu(wd1); for(i=0;i<5;i++) printf("%s的最低温度是%d\n最高温度是%d\n",cty[i],wd1[i][0],wd1[i][4]);//******

}

void wendu(int wulian[][5]) //*** { int i,j,t,temp; for(i=0;i<5;i++) for(j=0;j<5;j++) { /* if(wulian[i][j]>wulian[i][j+1]) { temp=wulian[i][j]; wulian[i][j]=wulian[i][j+1]; wulian[i][j+1]=temp; }*///这部分是个排序,你这样能排吗? }

}


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-06-17 14:14
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 

knocker我现在把函数部分改了一下,不知道对不对啊, void wendu(int wulian[][5]) { int i,j,max,min; for(i=0,j=0;i<5;i++) { max=min=wulian[i][j]; for(j=0;j<5;j++) { if(wulian[i][j]>wulian[i][j+1]) max=wulian[i][j]; if(wulian[i][j]<wulian[i][j+1]) min=wulina[i][j]; } } return ; }

我设置了二个变量,分别保存最高温度和最低温度,但是你说函数返回只能有一个值,那该怎么办啊, 如果我想用排序的方法来做这题,排序部分应该是怎样的啊.


学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2004-06-17 21:00
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
收藏
得分:0 

如果你要传两个以上值的话可以用地址传递

比如:void wendu(int wulian[][5],int *max,int *min)

{ ……

max=...

min=...

}


我的主页 http://www.
2004-06-17 21:21
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 
再帮我看看啊.我现在可以用结构体方法做这题了,但是我还用数组的方法把那个排序搞清楚,都教我一下啊.谢谢;.

学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2004-06-20 14:47
快速回复:knocker这题你还没有教会我啊!
数据加载中...
 
   



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

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