C语言经典编程282例12

数组:

094 求个元素之和

使用二维数组保存一个3行3列的数组,利用双重循环访问数组的每一个元素,然后对每个元素进行累加计算。

#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>

  main()
{
    
    
    int i, j, a[3][3], sum = 0;
  
  	for(i =0; i < 3; i++)
	{
    
    
		for(j = 0; j < 3 ; j++)
		{
    
    
		 scanf("%d", &a[i][j]);
		}
	}
	
	for(i =0; i < 3; i++)
	{
    
    
		for(j = 0; j < 3 ; j++)
		{
    
    
			printf(" %4d", a[i][j]);
			sum += a[i][j];
		}
		printf("\n");
	}
	
	printf("sum = %d\n", sum);
  	printf("\n");
   
 }

095 使用二维数组保存数据

实现从键盘为二维数组元素赋值,显示二维数组

#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>

  main()
{
    
    
    int i, j, a[2][3];
  
  	for(i =0; i < 2; i++)
	{
    
    
		for(j = 0; j < 3 ; j++)
		{
    
    
		  printf(" a[%d][%d]:", i, j);
		  scanf("%d", &a[i][j]);
		}
	}
	
	for(i =0; i < 2; i++)
	{
    
    
		for(j = 0; j < 3 ; j++)
		{
    
    
			printf(" %4d", a[i][j]);
		}
		printf("\n");
	}

  	printf("\n");
 }
 

096 计算字符串中有几个单词

输入一行字符,然后统计其中有多少单词,要求单词之间用空格分隔开,最后的字符不能成为空格。

1 由gets()获得字符串
判断输入的字符数组:第一个字符是否为结束符/空格
2 用while()循环统计字符数组空格,来统计单词

_______me_____________
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>

  main()
{
    
    
    char a[100];
    int i = 0, count = 1;
    
    gets(a);
    
    while(a[i] != '\0')
	{
    
    
		
	    if(a[i] == ' ')
	    {
    
    
	    	count++;
		}
		i++;
		
	 } 
	 
	printf("%d", count);
  	printf("\n");
 }
 
————————官方——————————
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>

  main()
{
    
    
    char astring[100];
    int index = 0, iword = 1;
    char cblack;
    
    gets(astring);
    
    if(astring[0] == '\0')
    {
    
    
    	printf("There is no char!\n");
    	
	}
	else if(astring[0] == ' ')
	{
    
    
	   printf("first char just is a black!\n"); 
	} 
	else
	{
    
    
		for(index = 0; astring[index] != '\0'; index++) 
	    {
    
    
	    	cblack = astring[index];
	    	if(cblack ==' ')
	    	{
    
    
	    		iword++;
			}
		}
		
		printf("%d",iword);
	} 
  	printf("\n");
 }
 

097 不使用strcpy()函数实现字符串复制功能

不使用strcpy()函数实现字符串复制功能,主要使用gets()和puts()函数来实现字符的获取和输出

这里a字符串复制到b字符串,a字符串不可能完全填满100个字符,可以用结束符判断终止!

#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>

  main()
{
    
    
    char astring[100], bstring[100];
    int i = 0;
   
    gets(astring);
    while(astring[i] != '\0')
    {
    
    
    	bstring[i] = astring[i];
    	i++;
	}
 
    puts(bstring);
  	printf("\n");
 }
 

098 逆序存放数据

任意输入5个数据,编程实现将这5个数据逆序存放。

定义数组b,将数组a的值逆序保存到数组b中。
、缺点:多定义了一个数组,造成冗余

——————————ME——————————————————
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>

  main()
{
    
    
    int a[5], i, b[5], j;
    
    for(i = 0; i < 5; i++)
    {
    
    
    	scanf("%d", &a[i]);
	}
    
    for(i = 0,j = 4; i < 5; i++, j--)
    {
    
    
    	b[i] = a[j];
	}

	for(i = 0; i < 5; i++)
    {
    
    
    	printf("%4d", b[i]);
	}

  	printf("\n");
 }

中心点左右对调,

——————————官方——————————————
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>

  main()
{
    
    
    int a[5], i, temp;
    
    for(i = 0; i < 5; i++)
    {
    
    
    	scanf("%d", &a[i]);
	}
    
    for(i = 0; i < 5; i++)
    {
    
    
    	printf("%4d", a[i]);
	}
	printf("\n");
 
    for(i = 0; i < 2; i++)
    {
    
    
    	temp = a[i];
    	a[i] = a[4 - i];
    	a[4 - i] temp;
	}
    
	for(i = 0; i < 5; i++)
    {
    
    
    	printf("%4d", a[i]);
	}
	 
  	printf("\n");
 }
 

099 相邻元素之和

从键盘输入10个整数存到数组a,编程求出a中相邻2元素之和,并将其保存在数组b中

#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>

  main()
{
    
    
    int a[10], b[10], i, temp;
    
    for(i = 0; i < 10; i++)
    {
    
    
    	scanf("%d", &a[i]);
	}
    
    for(i = 0; i < 9; i++)
    {
    
    
    	b[i] = a[i] + a[i + 1];
	}
    
	for(i = 0; i < 9; i++)
    {
    
    
    	printf("%4d", b[i]);
	}
	 
  	printf("\n");
 }
 

100 选票统计

竞选班长,共3位候选,输入参加选举人数及每个人选举内容,输出3个候选人最终的得票数及无效选票数。

#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>

  main()
{
    
    
    int x[100], i, num;
	int  a = 0, b = 0, c = 0, d = 0;
    printf("输入选举人\n");
    scanf("%d", &num);
    
    for(i = 0; i <num; i++)
    {
    
    
    	scanf("%d", &x[i]);
	}
    
    for(i = 0; i < num; i++)
    {
    
    
        if(x[i] == 1)
        {
    
    
        	a++; 
		}
		else if(x[i] == 2)
        {
    
    
        	b++; 
		}
		else  if(x[i] == 3)
        {
    
    
        	c++; 
		}
		else
		{
    
    
			d++;
		}
	}
	printf("a候选人票数:%d\n", a);
	printf("b候选人票数:%d\n", b);
	printf("c候选人票数:%d\n", c);
	printf("无效票数:%d\n", c);
  	printf("\n");
 }

————————
参考书籍: C语言经典编程282例
编译软件:Dev-C++

猜你喜欢

转载自blog.csdn.net/qq_41070511/article/details/113106276