c语言数组问题

版权声明:欢迎转载请注明转自方辰昱的博客https://blog.csdn.net/viafcccy https://blog.csdn.net/viafcccy/article/details/83960390

数组中a[i][j]代表第i+1行的第j+1个数

定义数组时以下面的问题为例a[5][5]代表生成一个5*5的大小的矩阵

而引用时切记第一行第一个数为a[0][0]以此类推

随机生成一个[5][5]的数组,使第一行与第五行调换位置,并找到此行的最大值或最小值

顺便讲一个小知识关于电脑中的随机数

1.计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种。
2.计算机的伪随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就是固定的。
3.只要用户或第三方不设置随机种子,那么在默认情况下随机种子来自系统时钟

附带一个常见问题ErrorC1104:以管理员身份打开Visual C++

#include<time.h> 
#include<stdio.h> 
#include<stdlib.h> 
void main()
{ 
	int random;//生成的随机数
	int i,j;//行和列
	int temp;//第一行和第五行数值交换的中间变量
	int max;//存放目前为止此行最大的数值的变量
	int raw,column;//存放行和列的数值
	int a[5][5];
	system("cls");
	srand(time(0));
 printf("随机生成的数组a为:\n");
 for(i=0;i<5;i++)
 {
  for(j=0;j<5;j++) 
  {
   random=rand()%101+0;//101代表101个随机数,0代表从来开始生成 
   a[i][j]=random;
   printf("%12d",a[i][j]);
  }
  printf("\n");//输出随机生成的数组
 }
 printf("第一行与第五行调换后的数组:\n");
 for(j=0;j<5;j++)
 {temp=a[0][j];
  a[0][j]=a[4][j];
  a[4][j]=temp;
 }//完成第一行和第五行的互换
 for(i=0;i<5;i++) {
     for(j=0;j<5;j++) printf("%12d",a[i][j]); //输出交换后的数组
      printf("\n");
 }
 for(i=0;i<5;i++){
        max=a[i][0];
        for(j=1;j<5;j++){
            if(a[i][j]>max)/*只需在此位置加入continue;即可找到最小值因为只要大于初始值得值都会跳出循环结束*/{
                max=a[i][j];
            }
        }
        printf("第%d行最大值:%d\n",i+1,max);
    }  

猜你喜欢

转载自blog.csdn.net/viafcccy/article/details/83960390