| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 660 人关注过本帖
标题:数组输出的第一个总是0,求教 下面的是我的代码
只看楼主 加入收藏
q1826050194
Rank: 2
等 级:论坛游民
帖 子:67
专家分:19
注 册:2011-3-7
结帖率:77.78%
收藏
已结贴  问题点数:10 回复次数:10 
数组输出的第一个总是0,求教 下面的是我的代码
#include<stdio.h>
char menu[6][8][16]={
    {"菜单","开胃菜","主菜","主食","饭后甜点","饮料"},
    {"开胃菜","烧椒皮蛋","蓝莓山药墩","竹笋干炒肉","干煎野山菌","小炒黄牛肉"},
    {"主菜","菠萝古老肉","水煮鱼","茄汁基围虾","盐焗手撕鸡","红烧黄花鱼","蚝油生菜","金牌蒜香骨"},
    {"主食","三鲜水饺","手擀面","米饭"},
    {"饭后甜点","草莓奶昔","冰激凌","蛋糕"},
    {"饮料","雪碧","蔬菜汁","啤酒","果汁"},
    };
double price[6][8]={{0},{0,8,10,8,13,12},{0,15,20,35,30,28,8,18},
                    {0,15,12,2},{0,10,16,10},{0,5,8,8,8}},caiqian[10];
char menu_()
{
    int n;
    printf("%s:\n",menu[0][0]);
    for(n=1;n<6;n++)
    {
        printf("%5d.%s\n",n,menu[0][n]);
    }
    printf("    0.点餐结束\n请选择:");
}
int num(int i)
{
    if(i==1) return 6;
    else if(i==2) return 8;
    else if(i==3) return 4;
    else if(i==4) return 4;
    else if(i==5) return 5;
}
int select(int i,int s)
{
    int j;
    printf("    %d.%s\n",i,menu[i][0]);
    for(j=1;j<s;j++)
    {
        printf("%9d.%-10s%10.2f\n",j,menu[i][j],price[i][j]);
    }
    printf("        0.返回\n请选择:");
}
int main()
{
    int i,j,s,k,a[5][7]={0},shu[10],zi[10],m=0,n,v=0,z,fen[100];
    char c,ch;
    for(;;)
    {
        menu_();
        scanf("%s",&c);
        if(c=='0') break;
        else if(c=='1'||c=='2'||c=='3'||c=='4'||c=='5')
        {
            i=c-48;
            s=num(i);
            for(;;)
            {
                select(i,s);
                scanf("%s",&ch);
                if(ch=='0') break;
                else if(ch=='1'||ch=='2'||ch=='3'||ch=='4'||ch=='5')
                {
                    k=ch-48;
                    printf("你点的是 %s ,请问要几份:",menu[i][k]);
                    scanf("%d",&n);
                    shu[v]=i;
                    zi[v]=k;
                    caiqian[v]=price[i][k];
                    fen[v]=n;//这里我在后面输出的时候第一个数总是0的,我想知道为什么,希望大家帮帮手
                    v++;
                    printf("\n");
                }
            }
        }
        printf("\n");
    }
    printf("\n你点的菜菜单:\n        菜名             单价");
    printf("       数量            价格\n");
    for(z=0;z<v;z++)
    {
    printf("%s        %s     %.2lf     %d\n",menu[shu[z]][0],menu[shu[z]][zi[z]],price[shu[z]][zi[z]],fen[z]);
    }   
    printf("---------------------------------------------------------");
    printf("\n                                     总价\n");
    return 0;
}
搜索更多相关主题的帖子: 三鲜水饺 蚝油生菜 水煮鱼 黄花鱼 冰激凌 
2011-03-07 19:49
q1826050194
Rank: 2
等 级:论坛游民
帖 子:67
专家分:19
注 册:2011-3-7
收藏
得分:0 
没人能帮帮手吗?
2011-03-07 20:09
xu_415
Rank: 1
来 自:四川
等 级:新手上路
帖 子:6
专家分:3
注 册:2011-3-6
收藏
得分:1 
你的程序很乱!
2011-03-07 20:55
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:1 
确实看不懂。。。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-07 21:10
wuzhanghao88
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:146
注 册:2009-10-25
收藏
得分:1 
你能不能把分给够点!都三维了!
2011-03-07 21:17
qiankunpig
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2011-1-4
收藏
得分:1 
喀喀喀
2011-03-07 21:57
q1826050194
Rank: 2
等 级:论坛游民
帖 子:67
专家分:19
注 册:2011-3-7
收藏
得分:0 
回复 4楼 ansic
额···其实看后面那里备注的就可以了,就是一个点菜的菜单,上面的子函数都可以运行了,就主函数那里的最后输出数量那里有点小纠结····
2011-03-07 22:13
kod_h
Rank: 1
来 自:阿特兰蒂斯山中大学
等 级:新手上路
帖 子:22
专家分:1
注 册:2008-4-23
收藏
得分:1 
gcc 4.4.3运行该程序没有你所说的问题,可能不同的编译器问题,估计问题出自你在之前的输入語句中
scanf("%s",&c);和scanf("%s",&ch) 这两个,把%s 换成%c试下
个人意见,因为重现不了你那问题,所以没有试过

默默关注着 努力学习着 msn:kod_h@
2011-03-07 23:33
shuimenjian
Rank: 1
等 级:新手上路
帖 子:3
专家分:9
注 册:2009-11-7
收藏
得分:1 
这代码脑壳都要看痛。。。。。。。。。
2011-03-07 23:35
q1826050194
Rank: 2
等 级:论坛游民
帖 子:67
专家分:19
注 册:2011-3-7
收藏
得分:0 
回复 8楼 kod_h
试过了,也还是不行
2011-03-08 07:17
快速回复:数组输出的第一个总是0,求教 下面的是我的代码
数据加载中...
 
   



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

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