一.上午培训内容
#include<stdio.h>
int main()
{
int a[5][5]={1,2,3,4,5,6,7,8,9); //一行五个多出来的向下一行存储
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
fun(a[0]) //传递第一行一整行
}
int a[4][5]={{1},2,3,4,5,6,7,8,9}; //第一行只有一个1,其余补0
a[0][0]与a[0][1]差四个字节
#include<stdio.h>
int main()
{
char ss[3][10]={"abcd","fghjk","rtyu"};
puts(ss[0]); //puts输出一条字符串
printf("%c",ss[0][2]);
}
二.下午培训内容
//第一题:行求和,列求最大值
/*
#include<stdio.h>
int main()
{
int a[3][4]={1,3,2,6,4,5,7,8,9,4,2,8};
int i,j;
int sum[3]={0};
int max[4]={0};
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
sum[i]+=a[i][j];
}
}
for(j=0;j<4;j++)
{
for(i=0;i<3;i++)
{
if(max[j]<a[i][j])
{
max[j]=a[i][j];
}
}
}
for(i=0;i<3;i++)
{
printf("第%d行的和是:%d\n",i+1,sum[i]);
}
for(j=0;j<4;j++)
{
printf("第%d列的最大值是%d\n",j+1,max[j]);
}
}
*/
//第二题;行排序
/*
#include<stdio.h>
int main()
{
int a[3][4]={1,3,2,6,4,5,7,8,9,4,2,8};
int i,j,l;
int m;
for(i=0;i<3;i++)
{
for(l=0;l<3;l++)
{
for(j=0;j<3;j++)
{
if(a[i][j]>a[i][j+1])
{
m=a[i][j];
a[i][j]=a[i][j+1];
a[i][j+1] =m;
}
}
}
}
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
}
*/
//第三题:已知一个6*6的矩阵,把矩阵二条对角线上的元素值加上10,输出这个新矩阵。
/*
#include<stdio.h>
int main()
{
int a[6][6]={0};
int i,j;
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(i==j)
{
a[i][j]+=10;
}
if(i+j==5)
{
a[i][j]+=10;
}
}
}
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
printf("%2d ",a[i][j]);
}
printf("\n");
}
}
*/
//第四题:打印杨辉三角形的前10行。
/*
#include<stdio.h>
int main()
{
int a[10][10]={0};
int i,j,m;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(i==j||j==0)
{
a[i][j]=1;
}
if(i>1&&i>j)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
}
for(i=0;i<10;i++)
{
for(m=0;m+i<10;m++)
{
printf(" ");
}
for(j=0;j<=i;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
}
*/
//第五题:矩阵交换行
/*
#include<stdio.h>
int a[6][5]={0};
int s;
int c;
int fun();
int main()
{
int i;
int j;
printf("输入共6行,前5行为矩阵的每一行元素,元素与元素之间以一个空格分开。\n第6行包含两个整数m、n,
以一个空格分开(1 <= m,n <= 5)。\n将第n行和第m行交换,输出交换后的结果。\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
scanf("%d",&a[i][j]);
}
}
scanf("%d""%d",&a[5][0],&a[5][1]);
fun();
printf("第%d行和第%d行互换之后的矩阵是:\n",s+1,c+1);
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%2d ",a[i][j]);
}
printf("\n");
}
}
int fun()
{
int i;
int j;
s=a[5][0]-1;
c=a[5][1]-1;
for(j=0;j<5;j++)
{
a[5][j]=a[s][j];
a[s][j]=a[c][j];
a[c][j]=a[5][j];
}
}
*/
//第六题:求二维数组3*3的{10,12,13,14,15,16,17,18,19}对角线元素的和
/*
#include<stdio.h>
int a[3][3]={10,12,13,14,15,16,17,18,19};
int s=0;
int fun();
int main()
{
fun();
printf("两条对角线上所有元素加一起的和是:%d\n",s);
}
int fun()
{
int i;
int j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(j==i||i+j==2)
{
s=s+a[i][j];
}
}
}
}
*/
//第七题:找出4*4数组中,最大元素位置
/*
#include<stdio.h>
int a[4][4]={0};
int b,c;
int fun();
int main()
{
int i;
int j;
printf("请输入四行四列,每行输入完成按回车:\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
}
fun();
printf("第%d行,第%d列就是最大的元素\n",b+1,c+1);
}
int fun()
{
int i;
int j;
int s=0;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(a[i][j]>s)
{
s=a[i][j];
b=i;
c=j;
}
}
}
}
*/
//第八题: 输入某年某月某日,判断这一天是这一年的第几天
/*
#include<stdio.h>
int a[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};
int n,y,r;
int fun();
int bufun();
int main()
{
printf("请输入年月日,用空格隔开:");
scanf("%d%d%d",&n,&y,&r);
if(n%4==0)
{
if(n%100==0&&n%400!=0)
{
bufun();
}
else
{
fun();
}
}
else
{
bufun();
}
}
int fun()
{
int i;
int s=0;
for(i=0;i<y-1;i++)
{
s=s+a[1][i];
}
printf("%d月%d日是%d年的第%d天\n",y,r,n,s+r);
}
int bufun()
{
int i;
int s=0;
for(i=0;i<y-1;i++)
{
s=s+a[0][i];
}
printf("%d月%d日是%d年的第%d天\n",y,r,n,s+r);
}
*/
//第九题: 输入某年某月某日,判断这一天到今天一共有多少天
/*
#include<stdio.h>
int n,y,r;
int fun();
int bufun();
int veryfun();
int verybufun();
int henfun();
int henbufun();
int s1=0,s2=0;
int a[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};
int jinn,jiny,jinr;
int main()
{
printf("请输入年月日,用空格隔开:");
scanf("%d%d%d",&n,&y,&r);
printf("请输入今年今月今日,用空格隔开:");
scanf("%d%d%d",&jinn,&jiny,&jinr);
veryfun();
verybufun();
if(n%4==0)
{
if(n%100==0&&n%400!=0)
{
bufun();
}
else
{
fun();
}
}
else
{
bufun();
}
if(jinn%4==0)
{
if(jinn%100==0&&jinn%400!=0)
{
henbufun();
}
else
{
henfun();
}
}
else
{
henbufun();
}
if(s2>s1)
printf("中间隔了%d天",s2-s1);
else
printf("中间隔了%d天",s1-s2);
}
int veryfun()
{
s1=(n-1)*365+(n-1)/4-(n-1)/100+(n-1)/400;
}
int verybufun()
{
s2=(jinn-1)*365+(jinn-1)/4-(jinn-1)/100+(jinn-1)/400;
}
int fun()
{
int i;
for(i=0;i<y-1;i++)
{
s1=s1+a[1][i];
}
s1=s1+r;
}
int bufun()
{
int i;
for(i=0;i<y-1;i++)
{
s1=s1+a[0][i];
}
s1=s1+r;
}
int henfun()
{
int i;
for(i=0;i<jiny-1;i++)
{
s2=s2+a[1][i];
}
s2=s2+jinr;
}
int henbufun()
{
int i;
for(i=0;i<jiny-1;i++)
{
s2=s2+a[0][i];
}
s2=s2+jinr;
}
*/
//第十题:将一个正整数分解质因数。例如:输入90,打印出:90=2*3*3*5
/*
#include <stdio.h>
int main()
{
int n; // 用户输入的整数
int i; // 循环标志
printf("输入一个整数:");
scanf("%d",&n);
printf("%d=",n);
// n>=2才执行下面的循环
for(i=2; i<=n; i++)
{
while(n!=i)
{
if(n%i==0)
{
printf("%d*",i);
n=n/i;
}
else
break;
}
}
printf("%d\n",n);
return 0;
}
*/