| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1066 人关注过本帖
标题:为何第二次大循环的结果是错误的
只看楼主 加入收藏
牧城雪
Rank: 1
等 级:新手上路
帖 子:33
专家分:9
注 册:2017-11-6
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:1 
为何第二次大循环的结果是错误的
#include<stdio.h>
main()
{
    int b[5];
    fu2(b,5);
}
int fu2(int a[][4],int n)
{
    int sum[]={0},i,j;
    char sm[30];
    for(i=0;i<n;i++)
    {
            printf("输入%d本书名字\n",i+1);
        scanf("%s",&sm);
        for(j=0;j<4;j++)
        {
        printf("输入%s本书在%d地区销量\n",sm,j+1);
        scanf("%d",&a[i][j]);
        sum[i]+=a[i][j];
        }
        printf("%d\n",sum[i]);
    }
}
例如第一次输入M,1,1,1,1结果为4正确,而第二次输入时,结果完全不靠谱。
搜索更多相关主题的帖子: 循环 结果 int printf 输入 
2017-12-05 12:27
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
收藏
得分:10 
你的编译器居然能运行,我这连编译都过不了
程序代码:
#include <stdio.h>

int fu2(int a[][4],int n);
int main(int argc, char*argv[]) {
    int b[5][4];
    fu2(b,5);
}
int fu2(int a[][4],int n) {
    int sum[5]={0},i,j;
    char sm[30];
    for(i=0;i<n;i++) {
        printf("输入%d本书名字\n",i+1);
        scanf("%s",&sm);
        for(j=0;j<4;j++) {
            printf("输入%s本书在%d地区销量\n",sm,j+1);
            scanf("%d",&a[i][j]);
            sum[i]+=a[i][j];
        }
        printf("%d\n",sum[i]);
    }
}

sum数组里面没有数字的话,我这里到第二个就会出问题,你那里不清楚
如果不喜欢二维数组的传递,可以采用指针的方式
int **arr = new int*[5];
for(int i = 0; i < 5; i++) {
    arr[i] = new int[4];
}

参数传递的时候,直接传递二级指针
void function(int **arr) {return;}


[此贴子已经被作者于2017-12-5 14:14编辑过]

2017-12-05 14:07
快速回复:为何第二次大循环的结果是错误的
数据加载中...
 
   



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

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