| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
#include<stdio.h> 
int main() 
{ 
int m, n, d; 
float sum, s[50][5]; 
         
        scanf_s("%d %d", &n, &m); 
        d = m; 
        sum = 0; 
        while(n>0) 
        { 
                while (m>0) 
                { 
                        scanf_s("%f",&s[n][m]); 
                         
                        m--; 
                        sum += s[n][m]; 
                } 
 
                 
                printf("%.2f", sum); 
                n--; 
                sum = 0; 
                return 0; 
        } 
 
} 
 
 
这边我想利用s[][]来储存第二个while的scanf的值,然后相加 
本意是想 
输入  2 2 
        10 20 10 20 
输出  60 
然而结果却只能读取前两位,输出了 30.。。 
之前也尝试过修改算法,结果都只能读取前两位 
按理说  第一个n=2,所以第一个while循环2次,m=2,第二个while循环2次,应该是输入4个数值才对呀 
有大佬能解释下哪里出了问题吗? 
 本帖最后由 xieglt 于 2020-11-8 19:55 编辑 
 
- while(n>0)
 
 -         {
 
 -                 while (m>0)
 
 -                 {
 
 -                         scanf_s("%f",&s[n][m]);
 
 -                        
 
 -                         m--;
 
 -                         sum += s[n][m];
 
 -                 }
 
 -        n--;
 
 - }
 
 -               printf("%.2f",sum);
 
 -                 sum = 0;
 
 -                 return 0;  //这些要放在循环外面,一才能达到你所说的结果。
 
 -  
 
  复制代码 
 
 
 
 |   
 
 
 
 |