目录
5809 七段显示器输出
int main()
{
int max_save[10][7]={{1,1,1,1,1,1,0},
{0,1,1,0,0,0,0},
{1,1,0,1,1,0,1},
{1,1,1,1,0,0,1},
{0,1,1,0,0,1,1},
{1,0,1,1,0,1,1},
{1,0,1,1,1,1,1},
{1,1,1,0,0,0,0},
{1,1,1,1,1,1,1},
{1,1,1,1,0,1,1}};
int num,col;
scanf("%d",&num);
/*模拟七段数码显示管分5行输出,
*奇数行只输出空格或者-,
*偶数行只输出空格或者|。*/
//start
if(max_save[num][0]) printf(" - \n");
else printf(" \n");
if(max_save[num][5]) printf("| ");
else printf(" ");
if(max_save[num][1]) printf("|\n");
else printf(" \n");
if(max_save[num][6]) printf(" - \n");
else printf(" \n");
if(max_save[num][4]) printf("| ");
else printf(" ");
if(max_save[num][2]) printf("|\n");
else printf(" \n");
if(max_save[num][3]) printf(" - \n");
else printf(" \n");
//end
return 0;
}
5814 矩阵旋转
#include <stdio.h>
#include <stdlib.h>
#define N 5
int main(void)
{
void transfor(int a[][N]);
int array[N][N],i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&array[i][j]);
transfor(array);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
j!=N-1?printf("%d ",array[i][j]):printf("%d\n",array[i][j]);
return 0;
}
void transfor(int a[][N])
{
//start
int i,j;
char b[5][5];
for(i=0;i<N;i++)
for(j=0;j<N;j++)
b[i][j]=a[j][i];
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=b[i][j];
//end
}
5808 分词输入
int main()
{
char sentence[101];
char word[15][10];
int i,j,k,num,flag;
while(gets(sentence)!=0)
{
i=j=k=0;
flag=0;num=0;
while(sentence[k]!='\0')
{
if((sentence[k]>='a'&&sentence[k]<='z')||(sentence[k]>='A'&&sentence[k]<='Z'))
{
word[i][j]=sentence[k];
j++;
flag=1;
}
else
{
if(flag==1)
{
word[i][j]='\0';
i++;
j=0;
num++;
}
flag=0;
}
k++;
}
i=0;
for(i=0;i<num;i++)
printf("%s\n",word[i]);
}
return 0;
}
5816 桶排序(单词计数)
int main()
{
int N,max,x,i,j;
char str[100],a[6][100]={"green","red","blue","pink","orange","black"};
while(~scanf("%d",&N))
{
int num[6]={0};
for(i=0;i<N;i++)
{
scanf("%s",str);
for(j=0;j<6;j++)
if(strcmp(str,a[j])==0)
num[j]++;
}
max=num[0];
x=0;
for(i=0;i<6;i++)
{
if(max<num[i])
{
max=num[i];
x=i;
}
}
printf("%s\n",a[x]);
}
return 0;
}
7128 每一行平均值(用指针)
以下搬用老师代码
int n,m;
double (*p)[21],a[21][21],ans[21],ave;
void get_ans(double (*p)[21])//写*p[21]会报错,必须写(*p)[21],注意定义二维行指针时变量外一定要打括号!
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
ans[j]=ans[j]+p[i][j];
ave=ave+p[i][j];
}
for(int i=1;i<=m;i++)
ans[i]=ans[i]/n;
ave=ave/(n*m);
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%lf",&a[i][j]);
p=a;//将二维数组a的地址传给指针p,之后把指针当成二维数组用
get_ans(p);
for(int i=1;i<=m;i++)
i==m?printf("%.2lf\n",ans[i]):printf("%.2lf ",ans[i]);
printf("%.2lf\n",ave);
return 0;
}
7131 回型方阵
int main()
{
int k,i,j,n,a[100][100];
scanf("%d",&n);
for(k=1;k<=(n+1)/2;k++)
{
for(i=k;i<=n+1-k;i++)
{
for(j=k;j<=n+1-k;j++)
a[i][j]=k;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<n;j++)
printf("%d ",a[i][j]);
printf("%d\n",a[i][j]);
}
return 0;
}
7116 判断是否为上三角矩阵
int main()
{
int n,i,j,flag=0,x;
int a[100][100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
x=a[n-1][n-1];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j>i)
{
if(a[i][j]!=x)
flag=1;
}
}
}
if(flag==0)
printf("It is up\n");
if(flag==1)
printf("up false\n");
return 0;
}