我的第一篇博客

来源:互联网 发布:淘宝好看不贵的鞋子 编辑:程序博客网 时间:2024/05/28 15:42

大家都说要写博客,其实也不知道改写什么。召哥说,在学某部分的知识时候记下一些程序,可以在以后遇到问题是回来找哪里出错。想想召哥所言很有道理!

而拥小抱思来想去,回忆起了如下程序:

#include<stdio.h>
#include<stdlib.h>
void main()
{
int n1,n2;
int **a,i,j,k,l,flag=0;
puts("please input length:");
scanf("%d",&n2);
puts("please input height:");
scanf("%d",&n1);
a=(int**)malloc(n1*sizeof(int*));
for(i=0;i<n1;i++)
        {
        a[i]=(int*)malloc(n2*sizeof(int));
        }
puts("please input numbers:");
for(j=0;j<n1;j++)
        {
        printf("please input %d numbers of the %d line:",n2,j+1);
        for(i=0;i<n2;i++)
                {
                scanf("%d",&a[j][i]);
}
        }
for(i=0;i<n1;i++)
{
for(j=0;j<n2;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
for(i=0;i<n1;i++)
{
        for(j = 0;j<n2;j++);
{
                flag=0;
                for(k=0;k<n2;k++)
                                    if(a[i][j]<a[i][k]) 
flag++;

                for(k=0;k<n1;k++)
                                     if(a[i][j]>a[k][j]) 
flag++;
                if(flag==0)  
printf("that is %d\n",a[i][j]);
                }
}

这个程序求的是二维数组的“鞍点”(该数为本行最大,本列最小)。其实重点不在于动态数组的建立,循环的套用。之所以记下来这个程序是因为:

{{{那是一个美好的清晨,拥小抱提着电脑包,迈着轻快的步伐,走在去往实验室的路上(好吧,扯远了)。总之就是,我用了1个多小时的时间去查程序的问题在哪,后来失败了;又请教召哥,召哥花了半个多小时的时间,在VC上进行了各种试验,最后发现,在最终的多重循环的第二重, for(j = 0;j<n2;j++) ,这个语句之后 j 的值直接变成2,这令我们很费解,不,是百思不得其解。明明赋给 j=0,为啥你不执行???到后来,终于发现,原来只是在这 for(j = 0;j<n2;j++) 后面多了一个 “;”}}}

 差之毫厘谬以千里”越是小错误越致命。谨以此篇,提醒自己要在敲代码时万分细心,小心小心再小心,不能再在这种地方犯错。


0 0
原创粉丝点击