| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1965 人关注过本帖
标题:二维数组作为函数参数的问题
取消只看楼主 加入收藏
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
二维数组作为函数参数的问题
各位大侠帮我分析下程序吧:
#include<stdio.h>
main()
{
int a[2][1],b,c;
do
{
 scanf("%d",&b);
 if(b==1)
  {
    for(c=0;c<2;c++)
    scanf("%d%d",&a[c][0],&a[c][1]);
   }
 if(b==2)
  {
   for(c=0;c<2;c++)
   printf("%d,%d\n",a[c][0],a[c][1]);
   }
}
while(b!=0);
}
我想要的效果是输入1后,开始输入4个变量,输入2,开始输出4个变量,输入0,退出;
为什么我输入的四个变量是1 2 3 4,输入2输出的四个变量却成了
1,3
3,2
这是怎么回事呢?应该怎么修改才能让输出的结果是
1,2
3,4 呢?
出现这个错误是由于一个小失误造成的,我想要的是一个两行两列的4个变量,结果却定义成了a[2][1],
应该改为a[2][2],调试无错误。
下面是我复杂化的一个程序:
#include<stdio.h>
void shuchu(int a[][2], char b[][20])
{
    int x;
    for(x=0;x<2;x++)
        printf("%s\t%d\t%d\n",b[x],a[x][0],a[x][1]);
}
main()
{
    char b[2][20];
    int a[2][2],c,x;
do
{
    scanf("%d",&x);
    if(x==1)
    {
        for(c=0;c<2;c++)
        {
            scanf("%s",b[c]);
            scanf("%d%d",&a[c][0],&a[c][1]);
        }
    }
    if(x==2)
      shuchu(a,b);
}
while(x!=0);
}
大家借鉴下哦;

[ 本帖最后由 小赵q1 于 2011-12-12 11:35 编辑 ]
搜索更多相关主题的帖子: include 
2011-12-12 06:06
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 2楼 khaz
在scanf()里加\n是容易出错的,我以前试过,加了\n应该怎么输入呢?
2011-12-12 09:35
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 3楼 杨易轩
呵呵,恩,我刚刚想到问题的所在,大意了,再问你个问题吧,我想让5个数从大到小输出,该怎么弄呢?貌似互换也很麻烦,能不能有个方便的方法呢?我刚学完字符数组,还没有接触冒泡等东西,谢谢
2011-12-12 09:50
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 7楼 khaz
可是我输入的5个变量是乱输的,他们的大小顺序需要重新排列
2011-12-12 10:03
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 9楼 杨易轩
多谢指教,我会努力学习完的,有问题还要向你请教哦。呵呵
2011-12-12 11:24
快速回复:二维数组作为函数参数的问题
数据加载中...
 
   



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

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