1.定义一个长度为20的数组,使用循环将斐波那契数列的前20想输入到数组中,输出数组的每一项,并输出该数组的总和。
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a[20]={1,1};
int i=0;
for(i = 2;i < 20; i++){
a[i]=a[i-1]+a[i-2];
}
for(i=0;i<20;i++){
printf("%d\t",a[i]);
}
printf("\n");
int sum = 0;
for(i = 0;i < 20; i++){
sum += a[i];
}
printf("sum=%d\n",sum);
return 0;
}

2.通过键盘输入6名学生的成绩,使用冒泡法对班级学生的成绩进行升序排序,输出排序后的成绩。
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int a[6];
int i;
int temp=0;
for(i = 0;i < 6;i++){
printf("第%d位学生成绩:",i+1);
scanf("%d",&a[i]); //输入六名学生成绩
}
printf("输出六名学生成绩:");
for(i=0;i<6;i++){
printf("%d\t",a[i]); //输出六名学生成绩
}
for(i = 0; i < 5;i++){
for(int l = 0;l<6-i;l++){
if(a[l]>a[l+1]){
temp=a[l];
a[l]=a[l+1];
a[l+1]=temp;
}
}
}
printf("\n从低到高排列");
for(i=0;i<6;i++){
printf("%d ",a[i]);
}
printf("\n");
return 0;
}

3.有如下两个数组int arr []={1,2,3,4,5,6,7,8,9,0};int brr []={3,7,15,9,20,2,100,4};要求自定义一个数组crr将上面两个数组交集存放到新数组中,并输出新数组中的内容。
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int arr[]={1,2,3,4,5,6,7,8,9,0};
int brr[]={3,7,15,9,20,2,100,4};
int lenb=sizeof(brr)/sizeof(brr[0]);
int lena=sizeof(arr)/sizeof(arr[0]);
int lenc = 0;
int crr[lena+lenb];
for(int i = 0;i < lena;i++){
for(int j = 0;j < lenb;j++){
if(arr[i]==brr[j]){
crr[lenc]=arr[i];
lenc++;
}
}
}
for(int i = 0;i < lenc;i++){
printf("%d\t",crr[i]);
}
printf("\n");
return 0;
}

4.0定义双精度浮点型数组存放十个学生成绩,输入十名学生成绩输出赋值后所有元素,使用选择排序,完成排序后输出,并求出平均分,并统计出大于平均分学生的比重,输出结果
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
double a[10];
int i;
double sum=0;
double temp=0;
for(int i=0;i<10;i++){
printf("输入%d名学生成绩:",i+1);
scanf("%lf",&a[i]);
//输入十名学生成绩
while(a[i] < 0 ||a[i] > 100){ //判断成绩是否有误
printf("输入有误");
scanf("%lf",&a[i]);
}
}
printf("输入所有人成绩及总和\n");
for(i = 0;i < 10;i++){
printf("%0.2lf\t",a[i]);
sum += a[i];
}
printf("%lf\n",sum); //总和
//选择排序
for(i = 0;i < 9;i++){
int max = i;
for(int j = i+1;j < 10;j++){
if(a[j]>a[max]){
max=j;
}
}
if(max!=i){
temp=a[i];
a[i]=a[max];
a[max]=temp;
}
}
printf("排序后的结果:");
for(i = 0;i < 10;i++){
printf("%0.2lf\n",a[i]);
}
temp = 0;
double vag = sum/10;
for(i=0;i<10;i++){
if(a[i]>vag){
temp++;
}
}
printf("平均分%0.2lf,超过平均分人数%0.0lf\n",vag,temp);
return 0;
}

5.23031班有四个小组,每组有五名学生,c语言基础考试成绩,第一组5位同学的成绩为90、92、93、91、88,第二组5位同学的成绩为86、89、87、85、99,第三组5位同学的成绩为100、95、85、75、90,第四组5位同学的成绩为90、85、95、80,定义二维数组分别输入4个小组的成绩,利用循环在输出4个小组的成绩,求出每个小组的最低成绩,最高成绩并输出并输出每个小组的最高成绩,最低成绩
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int arr[4][5]={90,92,93,91,88,86,89,87,85,99,100,95,85,75,90,90,85,85,95,80};
int i,j;
printf("输出\n");
for(i=0;i<4;i++){
for(j=0;j<5;j++){
printf("%d\t",arr[i][j]);
}
}
printf("\n");
int max;
int min;
for(i=0;i<4;i++){
max=arr[i][0];
min=arr[i][0];
for(j=0;j<5;j++){
if(arr[i][j]>max){
max=arr[i][j];
}
if(arr[i][j]<min){
min=arr[i][j];
}
}
printf("%d %d\n",max,min);
}
return 0;
}


234

被折叠的 条评论
为什么被折叠?



