Ⅰ c语言二维数组一维数组编程题
思路:先定义数组的前两项值,再依次对后面每项进行赋值,后面每项都是前两项的和。
例如:
#include <stdio.h>int main(){ int a[20],i; a[0]=a[1]=1; for(i=2;i<20;i++) a[i]=a[i-1]+a[i-2]; for(i=0;i<20;i++){ printf("%4d ",a[i]); if((i+1)%5==0) printf("\n"); } return 0;}/*输出: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765*/
Ⅱ c语言编程题在主函数中定义一个一维数组,把若干个人(人数自
本例建立一个函数fun,有三个数组参数,其中h[],low[]两个数组用来分别存储高于均值的成绩和低于均值的成绩,并返回高于平均成绩的分数的个数。
代码如下
#include<stdio.h>
intn;
floatsum=0,average;
floatfun(floatnum[],floath[],floatlow[]);
intmain()
{inti;
do
{printf("请输入人数:");scanf("%d",&n);}
while(n<=0);
floatnum[n],h[n],low[n];
for(i=0;i<n;i++)
{scanf("%f",&num[i]);
sum+=num[i];
}
for(i=0;i<n;i++)printf("%.1f ",num[i]);
printf(" 总分:%.1f ",sum);
average=sum/n;
printf("高于平均成绩%.1f的分数 ",average);
for(i=0;i<fun(num,h,low);i++)
printf("%.1f ",h[i]);
printf(" 低于平均成绩%.1f的分数 ",average);
for(i=0;i<(n-fun(num,h,low));i++)
printf("%.1f ",low[i]);
return0;
}
floatfun(floatnum[],floath[],floatlow[])
{inti,c=0,d=0; //c,d为计数器
for(i=0;i<n;i++)
{
if(num[i]>average){h[c]=num[i];c++;}//大于均值的成绩送入数组h[]
else{low[d]=num[i];d++;}//低于均值的成绩送入数组low[]
}
returnc;
}
Ⅲ C语言编程题:定义一个含有10个元素的一维数组。
#include "stdio.h"
void main()
{
int a[10],b[10],i,min;
printf("请输入10个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("输入的10个整数为:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<10;i++)
b[9-i]=a[i];
printf("逆序存放后的10个整数为:\n");
for(i=0;i<10;i++)
printf("%d ",b[i]);
printf("\n");
min=a[0];
for(i=0;i<10;i++)
if(min>a[i]) min=a[i];
printf("最小整数为:%d\n",min);
}
Ⅳ C语言:一道一维数组的编程题
#include<stdio.h>
intmain()
{inta[10000],i=0,j,k,l;
printf("Pleaseinputnumbers:");
while(scanf("%d",&k))
{
if(k==-222)
break;
a[i]=k;
i++;
}
for(j=0;j<i;j++)
{
for(l=j+1;l<i;l++)
{
if(a[j]>a[l])
{
k=a[j];
a[j]=a[l];
a[l]=k;
}
}
}
printf("Output: ");
for(j=0;j<i-1;j++)
{
if((j+1)%6==0)
printf("%-6d ",a[j]);
else
printf("%-6d,",a[j]);
}
printf("%-6d ",a[i-1]);
return0;
}
Ⅳ C语言题目:定义一个一维数组,并给数组赋值
一位数组赋值的几种方式
int
a[10]={1,2,3,4,5,6,7,8,9,10};
.一般初始化,例:
int
a[10]={3,10,5,3,4,5,6,7,8,9};
int
array[5]={2,3,4,5,6};
其结果是给每一个数组元素都指定了初值。
2.部分元素初始化,其余元素均为零。
例:
int
a[10]={7,8,9,67,54};
仅给前5个元素赋初值,后5个元素初值为0。
3.全部元素均初始化为1。
int
a[10]
=
{1,1,1,1,1,1,1,1,1,1};
不允许简写为 int
a[10]={1};或int
b[10]={1*10};
同学们想一想上述定义a和b数组后,初始化结果是什么?
注意:当程序不给数组指定初始值时,编译器作如下处理:
(1)部分元素初始化,编译器自动为没有初始化的元素初始化为0。
(2)数值数组如果只定义不初始化,编译器不为数组自动指定初始值,即初值为一些随机值(值不确定)。
4.如果全部元素均指定初值,定义中可省略元素的个数。
例:
int
a[5]={9,28,3,4,5};可以写为:
int
a[
]={9,28,3,4,5};
数组元素的引用
c语言规定,不能整体引用数值数组,只能逐个引用数组元素;
元素引用方式:数组名[下标表达式]
例:a[0]
=
a[5]
+
a[7]
-
a[2*3]
“下标表达式”可以是任何非负整型数据。
特别强调:1.一个数组元素,实质上就是一个变量,它具有和相同类型单个变量一样的属性,可以对它进行赋值和参与各种运算。
2.在c语言中,数组作为一个整体,不能参加数据运算,只能对单个的元素进行处理。
Ⅵ C语言编程问题(用一维数组)
#include<stdio.h>
voidmain()
{
inti,j,n,k,x,a[100];
scanf("%d%d",&n,&x);
k=n;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
if(a[i]==x)
{
j=i+1;
for(j;j<n;j++)
a[j-1]=a[j];
k--;
}
for(i=0;i<k;i++)
printf("%d",a[i]);
}
Ⅶ C语言一维数组的题目,实验六的任务3
代码如下
#include <stdio.h>
main()
{
int i,b[9],c=0,x;
static int a[10]={23,54,33,48,78,2,0,-2,16,15};
printf("原始数组数据
");
for (i=0;i<10;i++)
printf ("%d ",a[i]);
printf("
");
printf("Input a Number:");
scanf("%d",&x); //输入要对比的数据
for (i=0;i<10;i++)
{
if (a[i]==x)
{
c=i;
break; //循环体找是否有数据相同,有就跳出for循环
}
}
if (c) //如果有相同数据,就删除一个数据
{
for (i=0;i<c;i++)
b[i]=a[i];
for (i=c;i<9;i++)
{b[i]=a[i+1];}
printf("删除后的数组数据:
");
for (i=0;i<9;i++)
printf("%d ",b[i]);
}
if (!c) printf("no this number
");
}
最后的输出图
Ⅷ c语言一维数组
#include<stdio.h>
#include<malloc.h>
#include<string.h>
typedefchar*string;//字符串
//学生结构体
typedefstructStudent{
charname[16];//姓名
intid;//学号
floatgrade;//成绩
structStudent*next;//下一个学生节点
}Student,*student;
//班级结构体
typedefstructClass{
studentlist;//学生列表
intnum;//学生人数
}Class,*class;
//创建一个新班级
classnewClass();
//销毁一个班级
voiddestroyClass(classc);
//创建一个新学生
studentnewStudent(stringname,intid,floatgrade);
//向班级中加入一个学生
voidappend(classc,studentstu);
//统计不及格人数,并打印名单
voidshowNotPass(classc);
//统计全班平均分及以上的学生人数并打印名单
voidshowGreaterThanAvg(classc);
//统计各分数段的学生人数及所占百分比
voidshowGradeRange(classc);
//输出最高分及学号
voidshowFirst(classc);
//输出班里的所有成员
voidoutput(classc);
intmain(){
charname[16];
intid;
floatgrade;
classmyClass=newClass();//创建一个班级
printf("输入学生信息 ");
puts("姓名 学号 成绩");
while(~scanf("%s%d%f",name,&id,&grade)&&grade>=0){//grade<0结束
append(myClass,newStudent(name,id,grade));//向班级中加入一名新学生
}
//不及格信息
showNotPass(myClass);
//超过平均分的信息
showGreaterThanAvg(myClass);
//区间信息
showGradeRange(myClass);
//第一名
showFirst(myClass);
return0;
}
//创建一个新班级
classnewClass(){
classtmp=(class)malloc(sizeof(Class));
tmp->num=0;
tmp->list=NULL;
returntmp;
}
//销毁一个班级
voiddestroyClass(classc){
if(c==NULL)return;
studentlist=c->list;
studentnext=NULL;
while(list!=NULL){
next=list->next;
free(list);//释放当前节点
list=next;
}
free(c);
c=NULL;
}
//创建一个新学生
studentnewStudent(stringname,intid,floatgrade){
studenttmp=(student)malloc(sizeof(Student));
strcpy(tmp->name,name);
tmp->id=id;
tmp->grade=grade;
tmp->next=NULL;
returntmp;
}
//向班级中加入一个学生
voidappend(classc,studentstu){
if(c==NULL||stu==NULL)return;
stu->next=c->list;
c->list=stu;
c->num++;
}
//统计不及格人数,并打印名单
voidshowNotPass(classc){
if(c==NULL)return;
classtmpClass=newClass();
studenttmp=c->list;
for(;tmp!=NULL;tmp=tmp->next){
if(tmp->grade<60){
studenttmpStu=(student)malloc(sizeof(Student));
memcpy(tmpStu,tmp,sizeof(Student));
append(tmpClass,tmpStu);
}
}
printf("不及格人数:%d ",tmpClass->num);
output(tmpClass);
destroyClass(tmpClass);
}
//统计全班平均分及以上的学生人数并打印名单
voidshowGreaterThanAvg(classc){
if(c==NULL||c->num==0){
puts("班级没有人");
return;
}
studenttmp=c->list;
floatsum=0;
for(;tmp!=NULL;tmp=tmp->next){
sum+=tmp->grade;
}//统计总分
floatavg=sum/c->num;//平均分
classtmpClass=newClass();
for(tmp=c->list;tmp!=NULL;tmp=tmp->next){
if(tmp->grade>=avg){
studenttmpNode=(student)malloc(sizeof(Student));//一个临时学生节点
memcpy(tmpNode,tmp,sizeof(Student));
append(tmpClass,tmpNode);
}
}
printf("平均分及以上的学生人数为:%d ",tmpClass->num);
output(tmpClass);
destroyClass(tmpClass);
}
//统计各分数段的学生人数及所占百分比
voidshowGradeRange(classc){
if(c==NULL){
puts("班级没有人");
return;
}
inti;
classcontainer[10];
for(i=0;i<10;i++){//初始化分数段班级容器
container[i]=newClass();
}
studenttmp=c->list;
for(;tmp!=NULL;tmp=tmp->next){
intindex=(int)tmp->grade%10;//区间
if(index>9)index=9;//大于90的算成一个区间
studenttmpStu=(student)malloc(sizeof(Student));
memcpy(tmpStu,tmp,sizeof(Student));
append(container[index],tmpStu);
}
for(i=0;i<10;i++){
intnum=container[i]->num;
printf("%d~%d的人数:%d,占比:%.6g%% ",i*10,(i+1)*10,num,(float)(num*100)/c->num);
destroyClass(container[i]);
}
puts("");
}
//输出最高分及学号
voidshowFirst(classc){
if(c==NULL||c->list==NULL)return;
studentmax=c->list;
studenttmp=max->next;
for(;tmp!=NULL;tmp=tmp->next){
if(tmp->grade>max->grade)max=tmp;
}
printf("最高分:%.2g,学号:%d ",max->grade,max->id);
}
voidoutput(classc){
if(c==NULL)return;
puts("名单:");
studenttmp=c->list;
for(;tmp!=NULL;tmp=tmp->next){
printf("%s ",tmp->name);
}
puts("");
}
代码有点长....
Ⅸ C语言编程题,若函数形参为一维数组作函数参数编写函数,统计某一维数组中非0元素的个数
#include <stdio.h>
int func(int a[],int n)
{
int i,cnt;
for(cnt=0,i=0;i<n;++i)
if(a[i])
cnt++;
return cnt;
}
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
printf("%d ",func(a,10));
return 0;
}
Ⅹ c语言编程题在主函数中定义一个一维数组,把若干个人(人数自
#include<stdio.h>
#define N 100
int fun(float *a,float *b,float *c,int n) { int i,n1,n2; float av;
av=0; for ( i=0;i<n;i++ ) av+=a[i];
av/=n; n1=n2=0;
for ( i=0;i<n;i++ ) if ( a[i]>av ) { b[n1]=a[i]; n1++; } else { c[n2]=a[i]; n2++; }
return n1;
}
void main() { float a[N],b[N],c[N]; int i,na,nb,nc;
scanf("%d",&na); for ( i=0;i<na;i++ ) scanf("%f",&a[i]); if ( n<=0 ) exit(0);
nb=fun(a,b,c,na); nc=na-nb;
for ( i=0;i<nb;i++ ) printf("%.1f ",b[i]); printf(" ");
for ( i=0;i<nc;i++ ) printf("%.1f ",c[i]); printf(" ");
}