当前位置:首页 » 编程语言 » c语言实验五数组

c语言实验五数组

发布时间: 2022-05-24 10:17:37

① 定义一个五个数的数组,使其中最小的和第一个交换(用c语言

#include "stdio.h"
int main()
{
int a[5],min,i,t;
for(i=0;i<5;i++) //输入5个整数
scanf("%d",&a[i]);

for(i=0;i<5;i++) //输出5个整数
printf("%d ",a[i]);

min=0; //找到最小值的下标,放在min中
for(i=1;i<5;i++)
if(a[i]<a[min]) min=i;

t=a[0];a[0]=a[min];a[min]=t; //最小值和a[0]交换

printf("\n"); //再次输出数组
for(i=0;i<5;i++)
printf("%d ",a[i]);

}

② C语言实验求助

#include <stdio.h>
void main()
{
float score[10],max,min,sum=0;
int i;
for(i=0;i<10;i++)
{
printf("请输入第%d个评委的分数",i+1);
scanf("%g",&score[i]);
sum+=score[i];
}
max = score[0];
min = score[0];
for(i=0;i<10;i++)
{
if(max<score[i])
{
max=score[i];
}
if(min>score[i])
{
min = score[i];
}
}
sum = (sum-min-max)/8;
printf("平均分是:%g",sum);

system("pause");
}
#include <stdio.h>
void main()
{
int shu[5][5],i,j,sum=0,sum1=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("shu[%d][%d]",i,j);
scanf("%d",&shu[i][j]);
}
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==j)
{
sum+=shu[i][j];
}
if(i+j==4)
{
sum1+=shu[i][j];
}
}
}
printf("对角元素之和是sum=%d\nsum1=%d",sum,sum1);
system("pause");
}
#include <stdio.h>
void main()
{
int i,score[15],nums[15],count=0;
int shu[5];
for(i=0;i<5;i++)
{
shu[i]=0;
}
for(i=0;i<15;i++)
{
printf("请输入第%d个同学的学号:",i+1);
scanf("%d",&nums[i]);
printf("请输入第%d个同学的成绩:",i+1);
scanf("%d",&score[i]);
while(score[i]>100&&score[i]<0)
{
printf("你输入的成绩有误,请重新输入");
printf("请输入第%d个同学的成绩:",i+1);
scanf("%d",&score[i]);
}
}
for(i=0;i<15;i++)
{
if(score[i]<60)
{
count++;
}
else if(score[i]>=60&&score[i]<70)
{
shu[0]++;
}
else if(score[i]>=70&&score[i]<80)
{
shu[1]++;
}
else if(score[i]>=80&&score[i]<89)
{
shu[2]++;
}
else if(score[2]>=90&&score[i]<100)
{
shu[3]++;
}
else if(score[i]==100)
{
shu[4]++;
}
}

printf("\n60分以下的同学有%d人",count);
printf("\n60分--69的同学有%d人",shu[0]);
printf("\n70分79的同学有%d人",shu[1]);
printf("\n80分89的同学有%d人",shu[2]);
printf("\n90分99的同学有%d人",shu[3]);
printf("\n100分的同学有%d人",shu[4]);
system("pause");
}

③ c语言数组的定义

C语言支持一维数组和多维数组。如果一个数组的所有元素都不是数组,那么该数组称为一维数组。

在C语言中使用数组必须先进行定义,一维数组的定义方式为:类型说明符; 数组名 ;[常量表达式]。

其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符,方括号中的常量表达式表示数据元素的个数,也称为数组的长度。例如:

int a[10]; /* 说明整型数组a,有10个元素 */

float b[10], c[20]; /* 说明实型数组b,有10个元素,实型数组c,有20个元素 */

char ch[20]; /* 说明字符数组ch,有20个元素 */

对于数组类型说明应注意以下几点:

1、数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。

2、数组名的书写规则应符合标识符的书写规定。

3、数组名不能与其它变量名相同。例如:

int a;

float a[10];

是错误的。

4、方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0], a[1], a[2], a[3], a[4]。

5、不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。例如:

#define FD 5

// ...

int a[3+2],b[7+FD];

是合法的。但是下述说明方式是错误的。

int n=5;

int a[n];

6、允许在同一个类型说明中,说明多个数组和多个变量。例如:

int a,b,c,d,k1[10],k2[20];

(3)c语言实验五数组扩展阅读:

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1]目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

④ C语言定义一个具有5个元素的结构体数组,并进行初始化。写两个函数:1.输出这五个学生的信息;

#include<stdio.h>

structs
{
intnum;
charname[10];
floatscore;
};
intmain(void)
{
structsstu[5]={
{1,"xiaozhao",50.5},
{2,"xiaoqian",60.5},
{3,"xiaosun",75.5},
{4,"xiaoli",15.5},
{5,"xiaozhou",15.5}
};
floatvar=0.0f;
for(inti=0;i<5;i++)
{
printf("学号:%d 姓名:%s 成绩:%.2f ",stu[i].num,stu[i].name,stu[i].score);
var+=stu[i].score;
}

var/=5;

printf("平均分:%.2f ",var);


return0;
}

⑤ 用c语言解决数组

// Students.cpp : 定义控制台应用程序的入口点。
//

#include <stdio.h>
#include <tchar.h>
#include <stdlib.h>
#include <time.h>

//每个学生 的成绩
typedef struct _STU_SCORE
{
unsigned int uiScoreOne;
unsigned int uiScoreTwo;
unsigned int uiScoreThree;
}STU_SCORE, *LPSTU_SCORE;

void CalcScores(STU_SCORE* ssScore);//计算每门总分
void GetMaxMinScore(STU_SCORE* ssScore);//每门功课的最高最低分。
void GetAvgScore(STU_SCORE* ssScore);//每门功课平均成绩和每个学生的平均成绩

//先输入学生成绩
void ScanfStuScore(STU_SCORE* ssScore)
{
for (int i = 0; i < 10; ++i)
{
srand((unsigned)time( NULL));
ssScore[i].uiScoreOne = rand()%100 + i * 5;
ssScore[i].uiScoreTwo = rand()%100 + i * 6;
ssScore[i].uiScoreThree = rand()%100 + i * 7;
}
}

//计算每门总分
void CalcScores(STU_SCORE* ssScore)
{
unsigned int uiOne = 0;
unsigned int uiTwo = 0;
unsigned int uiThree = 0;
for (int i = 0; i < 10; ++i)
{
uiOne += ssScore[i].uiScoreOne;
uiTwo += ssScore[i].uiScoreTwo;
uiThree += ssScore[i].uiScoreTwo;
}
printf("第一门成绩总分为%u\n第二门成绩总分为%u\n第三门成绩总分为%u\n",
uiOne, uiTwo, uiThree);
}

void CalcMaxMin(unsigned int uiScore[], unsigned int& uiMin, unsigned int& uiMax)
{
uiMin = uiMax = uiScore[0];
for (int i = 1; i < 10; ++i)
{
if (uiMin > uiScore[i])
{
uiMin = uiScore[i];
}
if (uiMax < uiScore[i])
{
uiMax = uiScore[i];
}
}
}
void CalcMaxMinScore(STU_SCORE* ssScore, unsigned int& uiMin, unsigned int& uiMax, unsigned int uiGrade)
{
switch (uiGrade)
{
case 1:
{
unsigned int uiOneScore[10] = {0};
for (int i = 0; i < 10; ++i)
{
uiOneScore[i] = ssScore[i].uiScoreOne;
}
CalcMaxMin(uiOneScore, uiMin, uiMax);
}
break;
case 2:
{
unsigned int uiTwoScore[10] = {0};
for (int i = 0; i < 10; ++i)
{
uiTwoScore[i] = ssScore[i].uiScoreTwo;
}
CalcMaxMin(uiTwoScore, uiMin, uiMax);
}
break;
case 3:
{
unsigned int uiThreeScore[10] = {0};
for (int i = 0; i < 10; ++i)
{
uiThreeScore[i] = ssScore[i].uiScoreThree;
}
CalcMaxMin(uiThreeScore, uiMin, uiMax);
}
break;
default:
break;
}
}
void GetMaxMinScore(STU_SCORE* ssScore)//每门功课的最高最低分。
{
unsigned int uiOneMin = 0, uiOneMax = 0;
unsigned int uiTwoMin = 0, uiTwoMax = 0;
unsigned int uiThreeMin = 0, uiThreeMax = 0;
//
CalcMaxMinScore(ssScore, uiOneMin, uiOneMax, 1);
CalcMaxMinScore(ssScore, uiTwoMin, uiTwoMax, 2);
CalcMaxMinScore(ssScore, uiThreeMin, uiThreeMax, 3);

printf("第一门功课的最高分为%u, 最低分为%u\n", uiOneMax, uiOneMin);
printf("第二门功课的最高分为%u, 最低分为%u\n", uiTwoMax, uiTwoMin);
printf("第三门功课的最高分为%u, 最低分为%u\n", uiThreeMax, uiThreeMin);

}

//每门功课平均成绩和每个学生的平均成绩
void GetAvgScore(STU_SCORE* ssScore)
{
unsigned int uiAvgOne = 0, uiAvgTwo = 0, uiAvgThree = 0;
for (int i = 0; i < 10; ++i)
{
uiAvgOne += ssScore[i].uiScoreOne;
uiAvgTwo += ssScore[i].uiScoreTwo;
uiAvgThree += ssScore[i].uiScoreThree;
}
printf("第一门功课的平均分为%u,第2门功课的平均分为%u,第3门功课的平均分为%u\n\n",
uiAvgOne /= 10,
uiAvgTwo /= 10,
uiAvgThree /= 10);

for (int i = 0; i < 10; ++i)
{
int iAvg = 0;
iAvg += ssScore[i].uiScoreOne;
iAvg += ssScore[i].uiScoreTwo;
iAvg += ssScore[i].uiScoreThree;
printf("第%d个学生的平均分为%u\n", i, iAvg / 3);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
STU_SCORE ssScore[10] = {0};
ScanfStuScore(ssScore);//输入成绩,这里先自动生成一些

CalcScores(ssScore);//计算每门总分
printf("----------------------------------------\n");

GetMaxMinScore(ssScore);

printf("----------------------------------------\n");
GetAvgScore(ssScore);

system("pause");
return 0;
}

⑥ C语言实验设计 实验六 数组

main()
{ int a[10],n,i,j,_________________; /*定义,下面出现了min
printf("input n=");
scanf("%d",&n);
printf("input array a[0]a[l]… a[%d]:\n",n-1);
for(i=0;i<n;i++)
scanf("%d",______________________); /*依次存储数据a[i]
printf("before sort:array\n");
for(i=0;i<n;i--)
printf("%d",a[i]);
printf("\n");
for(i=0;i<_______________________;i++) /*最大为n-2,倒数第二个
{min=i;
for(j=___________________;j<n;j++) /*从第二个开始 j=i+1
if(a[j]<a[min])_________________; /*a[i]=a[j]交换小的到前面
ax=____________________;
a[i]=a[min];
____________________=ax;} /*a[min],
printf("after sort:array\n");
for(i=0;i<n;i++)
printf("%d", a[i]);
printf("\n");


这份代码有比较大问题,我觉得不科学
我修改了下
main()
{ int a[10],n,i,j,min;
printf("input n=");
scanf("%d",&n);
printf("input array a[0]a[l]… a[%d]:\n",n-1);
for(i=0;i<n;i++)
scanf("%d",a[i]);
printf("before sort:array\n");
for(i=0;i<n;i--)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<n-2;i++)
{min=i;
for(j=i+1;j<n;j++)
if(a[j]<a[min])
{ a[i]=a[j];
a[i]=a[min]; }
}
printf("after sort:array\n");
for(i=0;i<n;i++)
printf("%d ", a[i]);
printf("\n");

⑦ C语言《数组》实验报告怎么做急!!!!!!

1.申请int变量,在for里初始化为2!
因为
之前给出的是
{1,1}
所以下标赋值从2开始!
每增加的一个数组,其值都是前面两个数组的值之差!!得出20个数组后并输出结果!~
1.无措
1.结果自己运算-
-
------------------------------------------------------------------------------------------------------------------------------------
2.不知道神马是杨辉三角,我高中生-
-
-----------------------------------------------------------------------------------------------------------------------------------
3.错误1:for(i=1;i<11;i++)
解释:数组下标从0开始

错误2:所有的for循环下标都从0开始!

按照以上错误运行结果是9个数的排序

结果自己运算
-----------------------------------------------------------------------------------------------------------------------------------
4.不会
----------------------------------------------------------------------------------------------------------------------------------
5.错误1:因为初始化数组是20个,所以不能使用gets
因为,gets函数在写入过程中,不会判断数据长度大小,等于说,
如果输入大于20,拿25来说,
前20个写入到指定的数组内存中,后5个就会溢出到其他内存,冲掉其他数据!·造成不必要的后果!

运行结果:str[1],[2],[3]
都有可能最大
-----------------------------------------------------------------------------------------------------------------------------------

欢迎追问,纯个人思考手写!望采纳···

⑧ C语言实验报告(数组排序))

#include<stdio.h>

#include<stdlib.h>

#define N 8

void select_sort(int a[],int n);

//选择排序实现

void select_sort(int a[],int n)//n为数组a的元素个数

{

//进行N-1轮选择

for(int i=0; i<n-1; i++)

{

int min_index = i;

//找出第i小的数所在的位置

for(int j=i+1; j<n; j++)

{

if(a[j] < a[min_index])

{

min_index = j;

}

}

//将第i小的数,放在第i个位置;如果刚好,就不用交换

if( i != min_index)

{

int temp = a[i];

a[i] = a[min_index];

a[min_index] = temp;

}

}

}

int main()

{

int num[10] = {8, 3, 11, 7, 9, 84, 19, 25,22,33};

select_sort(num, 10);

for(int i=0; i<10; i++)

printf("%d ", num[i]);

printf(" ");

system("pause");

return 0;

}

⑨ C语言数组实验题

半年没有写代码了,手生得特别严重,写这样的基础题都费了我好大功夫,脑子转不过来#include<stdio.h>

#include<string.h>

int main()
{
int i;
char ch,str[81];
printf("请输入一个字符:");
scanf("%c",&ch);
printf("请输入一个以回车结尾的字符串:");
scanf("%s",str);
for (i = 0; i<strlen(str); i++)
{
if (str[i] == ch)
{
printf(" %d", i);
if (i == strlen(str) - 1) printf(" ");
}
else if (i == strlen(str) - 1) printf("Not Found ");
}

return 0;
}


⑩ C语言 数组实验 高手来 本人菜鸟~~~

1:#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int i,a[10],t;
srand((unsigned)time(NULL));
for(i=0;i<10;i++)a[i]=rand();
for(i=0;i<10;i++)printf("a[%d]=%d\n",i,a[i]);
for(i=0;i<5;i++)
{
t=a[i];
a[i]=a[9-i];
a[9-i]=t;
}
for(i=0;i<10;i++)printf("a[%d]=%d\n",i,a[i]);
}
2:#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int i,a[10],max,min,sum=0,m,n;
float ave;
srand((unsigned)time(NULL));
for(i=0;i<10;i++)a[i]=rand()%100;
max=a[0];
min=a[0];
for(i=0;i<10;i++)printf("a[%d]=%d\n",i,a[i]);
for(i=0;i<10;i++)
{
sum+=a[i];
if(a[i]>max){max=a[i];m=i;}
if(a[i]<min){min=a[i];n=i;}
}
ave=(float)sum/10;
printf("平均值:%.1f\n最大值:%d下标:%d\n最小值:%d下标:%d\n",ave,max,m,min,n);
}
3:#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int i,j,a[10],t,m=0;
srand((unsigned)time(NULL));
for(i=0;i<10;i++)a[i]=rand()%100;
for(i=0;i<10;i++)
{
t=a[i];
for(j=i;j<10;j++)if(a[j]<t){t=a[j];m=j;}
for(;m>i;m--)a[m]=a[m-1];
a[i]=t;
}
for(i=0;i<10;i++)printf("a[%d]=%d\n",i,a[i]);
}
4:#include <stdio.h>
int main()
{
double a[100]={1},b[100]={1};
int i,j,k,num;
num=10;
printf("%8.0f\n",1.0);
for(i=2;i<=num;i++)
{for(j=1;j<i+1;j++)
b[j]=a[j-1]+a[j];
for(k=1;k<num+1;k++)
a[k]=b[k];
for(k=0;k<i;k++)
printf("%8.0f",a[k]);
printf("\n");}
}

热点内容
安卓怎么快速多选手机桌面图标 发布:2025-02-13 06:21:51 浏览:298
androidia安装 发布:2025-02-13 06:12:14 浏览:12
jsmcc文件夹 发布:2025-02-13 06:11:26 浏览:170
算法与程序设计教案 发布:2025-02-13 06:10:51 浏览:55
ftp登录需要输入用户名和密码 发布:2025-02-13 06:03:33 浏览:398
数控编程代表 发布:2025-02-13 05:58:51 浏览:385
编程凸轮 发布:2025-02-13 05:38:21 浏览:691
判断素数的编程 发布:2025-02-13 05:29:25 浏览:618
androidaes加密 发布:2025-02-13 05:08:36 浏览:493
李宗瑞文件夹 发布:2025-02-13 04:27:59 浏览:611