A.啊对对对
#include <stdio.h>
int main(){
printf("啊对对对");
return 0;
}
签到题
B.数数
#include <stdio.h>
int main(){
int n;
int num=0;
scanf("%d",&n);
for(int i=0;i<=n;i++){
if(i%7!=0 || i==0){
int temp=i;
while(temp>0 && temp%10!=7){
temp/=10;
}
if(temp==0){
printf("%-5d",i);
num++;
if(num%7==0) printf("\n");
}
}
}
}
if判断这个数是不是7的倍数,如果不是7的倍数的话(这里单独列出0是因为0对7取余的结果也为0),进入第一个while循环是判断i是否包含7,如果不包含7的话,循环结束后,temp的值会为0,如果temp为0的话,输出答案,注意格式是左对齐,同时num++,每当num为7的倍数时,换行。
C.平均数
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
float sum=0.0,ave,num=0.0;
while(n>0){
sum+=n%10;
n/=10;
num++;
}
ave=sum/num;
printf("%.3f",ave);
}
我们之前学过如何将一个数字的每一位取出来,这里便用到了这个知识。
D.数组翻转
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++){
printf("arr[%d] = %d\n",i,a[n-1-i]);
}
}
这题也没什么难的,只需要理解如何倒序输出即可。
E.数列输出
#include <stdio.h>
int main(){
long long int n,m;
scanf("%ld %ld",&n,&m);
long long int a[m];
for(int i=0;i<m;i++){
if(i==0) a[i]=0;
if(i!=0) a[i]=a[i-1]+i;
if(i>=n-1) printf("%ld ",a[i]);
}
}
这题是一道找规律的题,注意后面的数字会很大,所以我们用long long定义数组。
这题我找到的规律是a[i]==a[i-1]+i,由于只需要输出n到m的数,所以我们当循环进行到n时开始输出,一直循环到m即可。
F.复数的加法
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
int a=0,b=0;
while(n--){
int p,q;
scanf("%d %d",&p,&q);
a+=p,b+=q;
}
if(a==0&&b==0) printf("0");
if(a==0&&b!=0) printf("%di",b);
if(a!=0&&b==0) printf("%d",a);
if(a!=0&&b>0) printf("%d+%di",a,b);
if(a!=0&&b<0) printf("%d%di",a,b);
}
这题唯一需要注意的就是复数的格式,我这里写了五个if,各位看一下代码即可理解。
G.正六边形
#include <stdio.h>
int main(){
int n;
char ch;
scanf("%d %c",&n,&ch);
for(int i=0;i<n-1;i++){//六边形的上半部分
for(int j=0;j<n-i-1;j++){//每一行前面的空格
printf(" ");
}
for(int k=0;k<n+i;k++){//六边形的主体部分
printf("%c ",ch);
}
printf("\n");
}
for(int i=0;i<2*n-1;i++){//六边形中间的一行
printf("%c ",ch);
}
printf("\n");
for(int i=0;i<n-1;i++){//六边形的下半部分
for(int j=0;j<i+1;j++){//每一行前面的空格
printf(" ");
}
for(int k=0;k<2*n-1-i-1;k++){//六边形的主体部分
printf("%c ",ch);
}
printf("\n");
}
}
又是熟悉的图形打印题,这题我们可以将六边形分为三个部分,上半部分,中间的一行,下半部分。上半部分i行每一行的空格数量是n-1-i,上半部分i行每一行的字符数量是n+i(从i==0开始),中间一行的字符数量是2*n-1,下半部分i行每一行的空格数量是i+1,下半部分i行每一行的字符数量是2*n-1-1-i(从i==0开始),然后注意每一个字符的后面都有一个空格。其余的结合注释看代码应该就能理解啦。