博客
关于我
C程序举例:利用数组
阅读量:282 次
发布时间:2019-03-03

本文共 4354 字,大约阅读时间需要 14 分钟。

利用数组

1,对10个数组元素依次赋值,逆序输出。

#include "stdio.h"int main(){   	int i,a[10];	printf("输入:"); 	for(i=0;i<10;i++)	scanf("%d",&a[i]);	printf("\n");	printf("输出:"); 	for(i=9;i>=0;i--)	printf("%2d",a[i]);	return 0;	}

运行结果:

输入:1 2 3 4 5 9 8 5 2 4输出: 4 2 5 8 9 5 4 3 2 1

2,利用数组输出一个斐波那契数列

#include "stdio.h"int main(){   	int i,a[20]={   1,1};	for(i=2;i<20;i++)	a[i]=a[i-1]+a[i-2];	for(i=0;i<20;i++)	{   		if(i%5==0)printf("\n");		printf("%6d",a[i]);	 } 	return 0;}

运行结果:

1     1     2     3     5     8    13    21    34    55    89   144   233   377   610   987  1597  2584  4181  6765

3,冒泡排序,使输入的十个数从小到大正序输出

#include"stdio.h" int main() {    	int a[10]; 	int i,j,t; 	for(i=0;i<10;i++) 	{    		scanf("%d",&a[i]);	}	for(j=0;j<9;j++)	for(i=0;i<9-j;i++)	{   		if(a[i>a[i+1]])		{   		t=a[i];		a[i]=a[i+1];		a[i+1]=t;	    }	} 	for(i=0;i<10;i++)	printf("%d ",a[i]);	return 0; }

运行结果:

9 8 7 6 5 4 3 2 1 00 1 2 3 4 5 6 7 8 9

4,二维数组:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在行号和列号。

#include"stdio.h"int main(){   	int i,j,r,c,max;	int a[3][4]={   1,2,3,4,8,9,10,11,12,5,6,7};	max=a[0][0];	for(i=0;i<3;i++)	for(j=0;j<4;j++)	if(a[i][j]>max)	{   		max=a[i][j];		r=i;		c=j;	}	printf("最大为%d,行号:%d,列号:%d",max,r,c);	return 0; }
最大为12,行号:2,列号:0

//因为这个输出结果我调了很久,因为下意识认为应该是三行零列才对,好久才反应过来,我定义的这个二位数组a[3][4]没有‘第三行’,也没有‘第四列’。

5,字符数组:输出一个已知的字符串。

#include "stdio.h"int main(){   	char c[15]={   'i',' ','a','m',' ','a',' ','s','t','u','d','e','n','t'};	int i;	for(i=0;i<15;i++)	{   		printf("%c",c[i]);	}	return 0;}

运行结果:

i am a student

6,输入一行字符,统计其中有多少个单词,单词之间用空格隔开

#include"stdio.h"int main(){   	char string[81];	int i,num=0,word=0;    char c;    gets(string);    for(i=0;(c=string[i])!='\0';i++)    if (c==' ')word =0;    else if(word ==0)    {       	word =1;    	num++;	}	printf("共%d个单词",num);	return 0;  }

运行结果:

i am a student.共4个单词

7,用筛选法求100内的素数

#include"stdio.h"#include"math.h"int main(){   	int i,j,n=0,a[101];	for(i=1;i<=100;i++)	a[i]=i;	a[1]=0;	for(i=2;i

运行结果

2    3    5    7   11   13   17   19   23   29   31   37   41   43   47   53   59   61   67   71   73   79   83   89   97

8,用选择法对十个整数排序

#include"stdio.h"int main(){   	int i,j,min,temp,a[11];	printf("enter data:\n");	for(i=1;i<11;i++) //这里只是想用a[1]到a[10],不是不知道有a[0]。	{   		printf("a[%d]=",i);		scanf("%d",&a[i]);	}	printf("the orginal numbers:\n") ;	for(i=1;i<11;i++)	{   		printf("%5d",a[i]);	}	for(i=1;i<10;i++)	{   		min=i;		for(j=i+1;j<11;j++)		{   			if(a[min]>a[j])			min=j;		 } 		temp=a[i];		a[i]=a[min];		a[min]=temp;	}	printf("\n"); 	printf("the sorted numbers:\n");	for(i=1;i<11;i++)	printf("%5d",a[i]);	return 0;}

运行结果:

enter data:a[1]=12a[2]=15a[3]=14a[4]=87a[5]=98a[6]=54a[7]=653a[8]=32a[9]=21a[10]=10the orginal numbers:   12   15   14   87   98   54  653   32   21   10the sorted numbers:   10   12   14   15   21   32   54   87   98  653

9,有一个已经排好序的数组,要求输入一个数后,按原来的排序的规律将他插入数组

#include"stdio.h"int main(){   	int a[11]={   1,4,6,8,9,12,13,28,46,96};	int temp1,temp2,number,end,i,j;	printf("array a:\n");	for(i=0;i<10;i++)	printf("%5d",a[i]);	printf("\n");	printf("insert number:\n");	scanf("%d",&number);	end=a[9];	if(number>end)	{   		a[10]=number;	}	else	{   		for(i=0;i<10;i++)		{   			if(a[i]>number)			{   				temp1=a[i];				a[i]=number;				for(j=i+1;j<11;j++)				{   					temp2=a[j];					a[j]=temp1;					temp1=temp2;				}				break;			}		}	}	printf("now array a:\n");	for(i=0;i<11;i++)	{   		printf("%5d",a[i]);		}	return 0;}

运行结果:

array a:    1    4    6    8    9   12   13   28   46   96insert number:16now array a:    1    4    6    8    9   12   13   16   28   46   96

10,将一个数组中的值按逆序重新存放。

#include"stdio.h" #define N 5//改变N的值就可以改变数组中可以逆序的数 int main() {    	int a[N],i,temp; 	printf("enter array a:\n"); 	for(i=0;i
enter array a:1 2 3 4 5array a:   1   2   3   4   5now array a:   5   4   3   2   1

11,输出直角排列的杨辉三角形

#include"stdio.h"#define N 10//改变定义的N值可以改变输出的杨辉三角的行数int main(){   	int i,j,a[N][N];	for(i=0;i

运行结果:

1   1   1   1   2   1   1   3   3   1   1   4   6   4   1   1   5  10  10   5   1   1   6  15  20  15   6   1   1   7  21  35  35  21   7   1   1   8  28  56  70  56  28   8   1   1   9  36  84 126 126  84  36   9   1

12,将字符数组s2中的全部字符复制到字符数组s1中。不用strcopy函数。复制时,‘/0’后面的字符不用复制。

#include"stdio.h"#include"string.h" int main(){   	char s1[80],s2[80];	int i;	printf("input s2:");	scanf("%s",s2);	for(i=0;i<=strlen(s2);i++)	s1[i]=s2[i];	printf("s1:%s\n",s1);	return 0;}
input s2:ceshis1:ceshi

转载地址:http://uecl.baihongyu.com/

你可能感兴趣的文章
MyBatis入门介绍(一)
查看>>
Java中如何构建树结构
查看>>
若依启动流程
查看>>
解决vue部署到nginx后刷新404
查看>>
解决eclipse字体背景变红或者变绿的问题
查看>>
一个面试大牛的经历
查看>>
浮点数在内存中的存储
查看>>
扫雷小游戏——简单易懂
查看>>
圆圈中最后剩下的数字(约瑟夫环)
查看>>
将ip地址用整形保存
查看>>
软件架构-zookeeper快速入门
查看>>
软件架构-zookeeper场景和实现
查看>>
自己的利益靠自己争取,开发就是这么坑!
查看>>
「初级篇」跟我一起学docker(四)--容器的基本操作
查看>>
22 岁毕业做程序员的「普通」人,50 岁时的人生轨迹是怎样的?
查看>>
『中级篇』Docker-Stack部署投票应用(50)
查看>>
『中级篇』docker体验阿里云的容器服务(58)
查看>>
『高级篇』docker容器来说软件架构的进化(二)
查看>>
『高级篇』docker之安全认证kubernetes命令熟悉(40)
查看>>
「docker实战篇」python的docker-抖音web端数据抓取(19)
查看>>