提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
第一关:求正数的个数及正数的平均值
#include <stdio.h>
void main(){
int i,a[10],t=0;double sum=0;//t用来计数
for(i=0;i<10;i++){
scanf("%d",&a[i]);
if(a[i]>0){
t++;sum+=a[i];}//输出一个加一个
}
printf("正数的个数为%d、平均值为%.2lf",t,sum/t);
}
第二关:求平均成绩和低于平均分的学生成绩
#include <stdio.h>
void main(){
int a[10],i,t=0;double sum=0;
for(i=0;i<6;i++){
scanf("%d",&a[i]);
if(a[i]<0)break;//遇到负数就退出循环,停止输出。
sum+=a[i];t++; }
printf("平均分为%.2lf\n",sum/t);
printf("低于平均分的分数为\n");
for(i=0;i<=t;i++){
if(a[i]<(sum/t)&&a[i]>=0){ printf("%d\n",a[i]); }
}
}
第3关:求方差
#include <stdio.h>
#include <math.h>
void main(){
float a[10],ave=0,sum=0;
for(int i=0;i<10;i++){ scanf("%f",&a[i]);ave+=a[i]*0.1; }
for(int j=0;j<10;j++){ sum+=pow(a[j]-ave,2); }
printf("方差为%.2f",sqrt(0.1*sum));
}
第4关:求数组各行的平均值
#include <stdio.h>
#define M 3
#define N 4
void main(){
float a[M][N]; int i,j;
for(i=0;i<M;i++){
float ave=0;
for(j=0;j<N;j++){ scanf("%f",&a[i][j]);ave+=a[i][j]/4.0; }
printf("%.2f ",ave);
}
}
第5关:求矩阵
#include <stdio.h>
#define N 3
void main(){
int i,j,a[N][N];
for(i=0;i<N;i++)
for(j=0;j<N;j++) { scanf("%d",&a[i][j]); }
for(i=0;i<N;i++){
for(j=0;j<N;j++){ printf("%7d",a[i][j]+a[j][i]); }
printf("\n");
}
}
第6关:求方阵“右上三角”的元素之和
#include <stdio.h>
#define N 3//取巧了
void main(){
int n,a[N][N],i,j,sum=0;
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=0;j<N;j++){ scanf("%d",&a[i][j]); }
printf("\n");
}
for(i=N-3;i<N;i++){
for(j=i;j<N;j++){ sum+=a[i][j]; }
}printf("%d",sum);
}
第7关:逆序输出
#include<stdio.h>
int main(){
char ch[1000]; int j= 0;
scanf("%s",ch);
for(int i=0;;i++){
if(ch[i]!='\0') j++;//记录字符串长度
else break;
}
for(int i=j-1;i>=0;i--){ printf("%c",ch[i]); }
}
第8关:字符串连接
#include <stdio.h>
void main(){
char a[100],b[100];int i,j=0,k=0;
scanf("%s\n%s",a,b);
for(i=0;;i++){
if(a[i]!='\0')j++;
else break; }//求字符串A的长度
for(i=0;;i++){
if(b[i]!='\0')k++;
else break; }//求字符串B的长度
printf("连接后的字符串为");
for(i=0;i<k+j;i++){
if(i<k)printf("%c",a[i]);
else printf("%c",b[i-k]); }
}
第9关:求数组中最外圈元素的平均值
#include <stdio.h>
#define M 3
#define N 4
void main(){
int i,j,sum=0,a[M][N]; float t=0,ave;
for(i=0;i<M;i++){
for(j=0;j<N;j++){
scanf("%d",&a[i][j]);
if(i==0||i==M-1||j==0||j==N-1){ sum+=a[i][j];t++; }//t计数。
}printf("\n");
}
printf("外围元素的平均值为%.2f",sum/t);
}
第10关:冒泡法排序问题
#include <stdio.h>
void main(){
char a[100]; int i,j,n=0,temp;
scanf("%s",a);
for(i=0;;i++){
if(a[i]!='\0')n++;
else break; }//计算字符个数
for(i=0;i<n-1;i++){
for(j=0;j<n-i;j++){
if(a[j]<a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp; }
}
}
for(i=0;i<n;i++){ printf("%c",a[i]); }
}
第11关:求方阵
#include <stdio.h>
int main(){
int n,i,j;
scanf("%d",&n);
int a[n][n];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(i+j==n-1) a[i][j]=2;
else a[i][j]=0;
printf("%d ",a[i][j]);
}printf("\n");
}
}
第12关:移字符串
#include <stdio.h>
void main(){
char a[100]; int n,i,j,t=0;
scanf("%s\n%d",a,&n);
for(i=0;;i++){
if(a[i]!='\0')t++;
else break; }//计算长度
printf("移动后的结果为");
for(j=0;j<t;j++){
if(j<=4) printf("%c",a[t+j-n-1]);
else printf("%c",a[j-n-1]);
}
}
第13关:计算平均成绩
#include <stdio.h>
void main(){
int n,i,j;
scanf("%d",&n);
float a[n][3];
for(i=0;i<n;i++){float sum=0;
for(j=0;j<3;j++){ scanf("%f",&a[i][j]); sum+=a[i][j]; }
printf("%d %.1f %.1f %.1f %.1f\n",i+1,a[i][0],a[i][1],a[i][2],sum/3.0);
}
}
第14关:删除字符串中的前导空格
#include<stdio.h>
#include<string.h>
main(){
char a[100],b[100]; int i=0,j=0;
gets(a);
strcpy(b,a);//把字符串a复制到字符串b中
while(b[i]==' '){ i++; }//类似指针右移
while(b[i]!='\0'){ a[j++]=b[i++]; }
a[j]='\0';
puts(a);
}