补题报告

函数题

 

 

 

用b[0]计算字母的个数,b[1]计算数字的个数,b[2]计算空格的个数,用b[3]计入其他字符的个数

void fun(char s[],int b[])
{
int i=0;
while(1)
{
if(s[i]=='\0')
break;
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
{
b[0]++;
}
else if(s[i]>='0'&&s[i]<='9')
{
b[1]++;
}
else if(s[i]==' ')
{
b[2]++;
}
else
{
b[3]++;
}
i++;
}}

 

 

 

 先算出矩阵每个单元的和,然后在求出对角线,最后一行,最后一列的和,再用总的减去它。

int sumMatrix(int a[][N])
{
int sum=0,i,j,s=0;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(i==j||i==N-1||j==N-1)
sum+=a[i][j];
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
s+=a[i][j];
}
}
return s-sum;
}

编程题

 

 用下标表示菜品编号,用数组的值表示投票数

#include<stdio.h>

int main()
{
int n,a,i;
scanf("%d",&n);
int b[1001]={0};
while(scanf("%d",&a)!=EOF)
{
b[a]++;
}
int max=1;
for(i=2;i<=n;i++)
{
if(b[max]<b[i])
{
max=i;
}
}
for(i=1;i<=n;i++)
{
if(b[max]==b[i])
{
printf("%d %d\n",i,b[i]);
}
}
return 0;
}

 

 先用一个数组储存除了前n个以外的其他的值,再把刚刚的前n个值储存在这个数组后面。

#include<stdio.h>

#include<string.h>

int main()
{
char s[101];
int n,i=0;
scanf("%c",&s[i]);
while(s[i]!='\n')
{
i++;
scanf("%c",&s[i]);
}
s[i]='\0';
scanf("%d",&n);
int y=0;
char tan[101];
n%=strlen(s);
for(i=n;i<strlen(s);i++)
{
tan[y]=s[i];
y++;
}
tan[y]='\0';
int g=0;
for(i=y;i<y+n;i++)
{
tan[i]=s[g];
g++;
}
tan[i]='\0';
printf("%s",tan);
return 0;
}

 

 先打印外面那一层,然后在逐层往里面打印

#include<stdio.h>

int main()
{
int n;
scanf("%d",&n);
int a[n][n];
int i=0,j=n-1,p=1;
int x=0,y=n-1;
int f=n;
while(p<=f*f)
{
for(i;i<=y;i++)
{
a[i][j]=p;
p++;
}
i--;
j--;
for(j;j>=x;j--)
{
a[i][j]=p;
p++;
}
i--;
j++;
for(i;i>=x;i--)
{
a[i][j]=p;
p++;
}
j++;
i++;
for(j;j<y;j++)
{
a[i][j]=p;
p++;
}
i++;
j--;
n--;
x++;
y--;
}
for(i=0;i<f;i++)
{
for(j=0;j<f;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
return 0;
}

 

posted on 2021-12-12 21:37  爱吃鱼和包子  阅读(38)  评论(0编辑  收藏  举报