c语言-帮忙看看这个C语言程序

问题描述

帮忙看看这个C语言程序
输入一个正整数n(1≤n≤6)和n 阶矩阵a 中的元素,如果a 是上三角矩阵,输出“YES”;否则,输出“NO”(上三角矩阵即主对角线以下的元素都为0,主对角线为从矩阵的左上角至右下角的连线)?

【输入形式】

从键盘输入一个正整数n和矩阵阵列。

【输入输出样例1】(下划线部分表示输入)

Input n: 3

Input array:

1 2 3

0 4 5

0 0 6

include

int main( void)
{
int n i j;
int a[6][6];
printf(""Input n: "");
scanf(""%d""&n);
printf(""Input array:n"");
for(i=1; i<=n; i++){
for(j=1; j<=n; j++){
scanf(""%d""&a[i][j]);}
for (i=1;i<=n;i++){
for(j=n;j>=i;j--){
if (a[i][j] =0) {printf(""NO"");
break;}

                    else printf(""YES"");                    }                }            }

解决方案

感觉你这个n = 6 的时候会出问题吧。。。数组下表是从0开始的呀 = = 你n = 6的时候输入就越界了。。。把循环里i,j初始化为0试一试 0.0

解决方案二:
printf(""NO"")是对的,但是printf(""YES"")过早。你在个位子仅查到了某一个元素而已。全部查完才可以printf(""YES"").另外计算机一般都是先行后列所以你判断的j循环是不是应该从1到i-1?

解决方案三:
这个程序,其代码还算简单。如果读代码找不出哪里逻辑错误,建议你单步调试一下。
学习编程,调试是一个重要的过程。再进一步,可以增加一个 LOG 输出,例如:将输入 YES 时的 i 和 j 打印出来,这样就可以判断出错误的原因。

解决方案四:
我估计错误行在判断语句上if (a[i][j] =0) 应为if (a[i][j] ==0)
这是我初步判断
我上机测试一下后给你结果

解决方案五:
还有一个原因我也怀疑,就是变量i最初赋值是不是应该是i=0啊

解决方案六:
for(i=1; i<=n; i++)改为for(i=1; i<n; i++)

时间: 2024-10-31 10:45:13

c语言-帮忙看看这个C语言程序的相关文章

c语言-帮忙看下C语言打印错误

问题描述 帮忙看下C语言打印错误 #include int main(void) { int n,i,j,t; scanf("%d",&n); for(i=1;i<=4;i++){ for (j=1;j<=n-i;j++) printf(" "); for(t=1;t<=2i-1;t++) printf("*"); printf("n");} for(i=3;i>=1;i--){ for (j=

c语言-急!!求大神能帮忙注释一个C语言编译器的程序。大概说一下程序的流程和框架。

问题描述 急!!求大神能帮忙注释一个C语言编译器的程序.大概说一下程序的流程和框架. 谢谢!灰常感谢~~~~留邮箱发代码~~~~程序目的是完成词法分析.语法分析.语义分析等功能,并生成某种机器上的目标代码(汇编语言)或中间代码(四元式). 解决方案 不懂-程序目的是完成词法分析.语法分析.语义分析等功能, 解决方案二: 363581806@qq.com 尽量试试,刚刚做完编译原理实验,应该能看懂一点-- 解决方案三: 906254242@qq.com我来.

求大神帮忙写到c语言的程序,关于体育场建筑物的!!谢谢

问题描述 求大神帮忙写到c语言的程序,关于体育场建筑物的!!谢谢 In this exercise you will design a structure in C that models a Major League Baseball stadium. You will also write several supporting functions and methods that process and act on that data. Additional details are pro

c语言编程报错,简单程序

问题描述 c语言编程报错,简单程序 题目是输出a,b.c中最小数值 自学c语言,求帮忙看看哪里不对呀 #include #include int min(int a,int b,int c ) { int z; if(a<b) z=a; { if(a<c) z=a; else z=c; return (z); } else z=b; { if(b<c) z=b; else z=c; return(z); } } main () { int x,y,m; printf("Inpu

帮忙看一下c语言这个关于数组的错误~

问题描述 帮忙看一下c语言这个关于数组的错误~ 输入 10 个整数用选择排序法将它们按照升序排列好 原理说明:把一个数组从小到大排列,不停的扫描整个数组,第一次扫描把最小的数找出来并放在第一位,第二次扫描,把其余的数中最小的数找到放在第二位,以此类推,这样经过N-1次扫描之后就可以把N个数的顺序排列好了 #define A 10#include <stdio.h>int main(){ int a[A]ijkt; for(i=0;i<A;i++) scanf(""%d

字符串-求大神帮忙看看这个c语言他题目代码的缺陷~~

问题描述 求大神帮忙看看这个c语言他题目代码的缺陷~~ 7.1连接两个字符串 不使用 strcat 函数,编写一个程序将两个字符串连接起来,注意程序首先需要通过键盘输入两个字符串,然后将它们连接起来,将连接后的字符串存储于新的字符数组中,再打印数出. #include<stdio.h> int main() { char a[50],b[50],c[50];int i=0,j; gets(a); gets(b); while(a[i]!='') { c[i]=a[i]; i++; } j=i,

求大神帮忙,用C语言写个生日蛋糕出来

问题描述 求大神帮忙,用C语言写个生日蛋糕出来 各位大神帮帮忙,有个朋友过生日 不知道如何用C语言编个生日蛋糕,能力有限,特来请教大神们 解决方案 不是你能力有限,是C语言功能有限.C语言哪里能变出蛋糕来. 解决方案二: #include <stdlib.h> #include <math.h> #include <graphics.h> int size, color = 1; void *save1, *save2; void save(); void dsnow(

c语言-pat 部分A+B 求大神帮帮忙,初学C语言

问题描述 pat 部分A+B 求大神帮帮忙,初学C语言 找不出错误... 正整数A的"DA(为1位整数)部分"定义为由A中所有DA组成的新整数PA.例如:给定A = 3862767,DA = 6,则A的"6部分"PA是66,因为A中有2个6. 现给定A.DA.B.DB,请编写程序计算PA + PB. 输入格式: 输入在一行中依次给出A.DA.B.DB,中间以空格分隔,其中0 < A, B < 1010. 输出格式: 在一行中输出PA + PB的值. 输入

中文字符-如何用C语言编写一个简单的输入法程序,要求可以输入汉字。

问题描述 如何用C语言编写一个简单的输入法程序,要求可以输入汉字. 不太清楚汉字在计算机中是如何存储的,想知道例如微软的智能ABC以及搜狗输入法是怎样实现拼音拼写下的汉字输入. 解决方案 首先要有一个汉字的编码库,比如GB2312编写的是拼音输入法的话,还要建立一个拼音与汉字对应的数据库然后根据用户输入的拼音,提示出对应的汉字(汉字的优先顺序由数据库决定,同时还可以学习该用户的使用习惯)如果输入法还支持智能联想输入的话,还要加入词库(也有优先级),这样可以根据前一个字来推断出下一个可能的字 解决