C程序设计(谭浩强)随书代码验证-第六章 利用数组处理批量数据

C程序设计(谭浩强)随书代码验证-第六章 利用数组处理批量数据

源码

源码: github.

6-1逆序输出数组

例6-1

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

在这里插入图片描述

6-2斐波那契数列

在这里插入图片描述

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

在这里插入图片描述

6-3冒泡排序

在这里插入图片描述

#include <stdio.h>
int main()
{
	int a[10];
   	int i,j,t;
   	
   	printf("input 10 numbers :\n");
   	for (i=0;i<10;i++)                    
     	scanf("%d",&a[i]);                  
   	printf("\n");
   	
   	for(j=0;j<9;j++) 
	{                          // 进行9次循环,实现9趟比较
		for(i=0;i<9-j;i++)
		{                     // 在每一趟中进行9-j次比较                  
	  		if (a[i]>a[i+1])                     // 相邻两个数比较 
	    	{
				t=a[i];
				a[i]=a[i+1];
				a[i+1]=t;
			}
		}
	}	
		
	printf("the sorted numbers :\n");
	
	for(i=0;i<10;i++)
	{
		printf("%d ",a[i]);	
	} 	
	printf("\n");
	
   	return 0;
}

在这里插入图片描述

6-4二维数组互换

在这里插入图片描述

#include <stdio.h>
int main()
 {
   int a[2][3]={{1,2,3},{4,5,6}};
   int b[3][2],i,j;
   
   printf("array a:\n");
   
   	for (i=0;i<=1;i++)
	{
      	for (j=0;j<=2;j++)
    	{
          	printf("%5d",a[i][j]);
          	b[j][i]=a[i][j];
        }
      	printf("\n");
    }
   	printf("array b:\n");
   	for (i=0;i<=2;i++)
   	{
      	for(j=0;j<=1;j++)
        printf("%5d",b[i][j]);
       	printf("\n");
   	}
   return 0;
 }    

在这里插入图片描述

6-5 二维数组最大值

在这里插入图片描述

#include <stdio.h>
int main()
{
	int i,j,row=0,colum=0,max;
  	int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};   // 定义数组并赋初值
  	max=a[0][0];                                       // 先认为a[0][0]最大
  	for (i=0;i<=2;i++)
  	{
	    for (j=0;j<=3;j++)
	    {
		    if (a[i][j]>max)                              // 如果某元素大于max,就取代max的原值
		    {
				max=a[i][j];
		       	row=i;                                    // 记下此元素的行号
		       	colum=j;                                  // 记下此元素的列号
		    } 	
		} 
	} 

  printf("max=%d\nrow=%d\ncolum=%d\n",max,row,colum);
  return 0;
}   

在这里插入图片描述

6-6输出数组

在这里插入图片描述

#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]);
  	printf("\n");
  	return 0;
}  

在这里插入图片描述

6-7输出菱形图

在这里插入图片描述

#include <stdio.h>
int main()
{
	char diamond[][5]={	{' ',' ','*'},
						{' ','*',' ','*'},
						{'*',' ',' ',' ','*'},
						{' ','*',' ','*'},
						{' ',' ','*'}};
  	int i,j;
  	for (i=0;i<5;i++)
    {
		for (j=0;j<5;j++)
        printf("%c",diamond[i][j]);
     	printf("\n");
    }
  	return 0;
}

在这里插入图片描述

6-8统计单词个数

在这里插入图片描述
在这里插入图片描述

#include <stdio.h>
int main()
{
  	char string[81];
  	int i,num=0,word=0;
  	char c;
  	gets(string);                           // 输入一个字符串给字符数组string
  	for (i=0;(c=string[i])!='\0';i++)       // 只要字符不是'\0'就继续执行循环
    {
		if(c==' ') 
			word=0;                    		// 如果是空格字符,使word置0
	    else if(word==0)              		// 如果不是空格字符且word原值为0
		{
			word=1;                          // 使word置1
	     	num++;                           // num累加1,表示增加一个单词
		}
	}	

  printf("There are %d words in this line.\n",num);  //输出结果
  return 0;
}

在这里插入图片描述

6-9三个字符串最大值

在这里插入图片描述

#include<stdio.h>
#include<string.h>
int main ( )
{
  	char str[3][20];                 // 定义二维字符数组
  	char string[20];                 // 定义一维字符数组,作为交换字符串时的临时字符数组
  	int i;
  	
  	for (i=0;i<3;i++)
      gets (str[i]);                 // 读入3个字符串,分别给str[0],str[1],str[2]   
	
	if (strcmp(str[0],str[1])>0)     // 若str[0]大于str[1]
	  	strcpy(string,str[0]);       // 把str[0]的字符串赋给字符数组string
	else                             // 若str[0]小于等于str[1]
		strcpy(string,str[1]);       // 把str[1]的字符串赋给字符数组string 

	if (strcmp(str[2],string)>0)     // 若str[2]大于string
		strcpy(string,str[2]);       // 把str[2]的字符串赋给字符数组string     
	
	printf("\nthe largest string is:\n%s\n",string);  // 输出string
	return 0;
}

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值