学习笔记——C语言基本概念&数组(作业篇)

本次博文就不在发先关概念和介绍,而是使用数组来做一些练习题。

基础篇:

1:从键盘输入 10 个数, 计算并输出它们的最大值、 最小值和平均值。

这个使用C语言如何使用数值实现了?

参考答案:

#include <stdio.h>
int main()
{
	int i,num[10] ={0};
	int	max=0,min=0;
	float ave=0.0,sum=0.0;
	for (i=0;i<10;i++)
	{
		scanf("%d",&num[i]);
	}
	//请平均值 
	for(i=0;i<10;i++)
	{
		sum +=num[i];	
	}
	ave = sum/10;
	printf("平均值为:%.2lf\n",ave);
	for(i=0;i<10;i++)
	{
		if(i==0)
		{
			max =num[i];
			min =num[i];
		}
		else if(num[i]>max)
		{
			max=num[i];
		}
		else
		{
			min=num[i];
		}

	}

	
		
	printf("最大值为:%d,最小值为:%d \n",max,min);
	return 0; 
}

运行结果测试:

2、按以下规律翻译密码:将每一个字母变成它后面的字母, 例如, 将 A 变成 B, B 变成 C, …, Z 变成 A, 非字母字符不变, “ !” 作为电文结束标志。
 

#include <stdio.h>
//翻译密码
int main()
{
	int i,a=0;
	char num[32] ={0};
	for(i=0;i<32;i++)
	{
		scanf("%c",&num[i]);
		if(num[i]!='!')
		{
			if((num[i]>= 'A'&& num[i]<='Z')||(num[i]>='a'&&num[i]<='z'))
			{
				num[i]= num[i]+1;	
			}	
		}
		else
		{
			break;
		}
	}
	
	printf("%s\n",num);
	return 0; 
}

运行结果:

提升篇:

1:利用数组实现斐波那契数列的前 30 项, 并要求格式化对齐, 每行值输出
5 个数。 ( 斐波那契数列: 1 1 2 3 5 8 13 21……)

#include <stdio.h>

int main() {
    int n = 30;
    int fib_sequence[n];
    fib_sequence[0] = 1;
    fib_sequence[1] = 1;

    for (int i = 2; i < n; i++) {
        fib_sequence[i] = fib_sequence[i - 1] + fib_sequence[i - 2];
    }

    for (int i = 0; i < n; i++) {
        printf("%-8d", fib_sequence[i]);
        if ((i + 1) % 5 == 0) {
            printf("\n");
        }
    }

    return 0;
}

运行结果:

2:输入一个字符串, 判断是否是回文。 ( 回文: 这个字符串顺读和反读是一
样的。 如“abcba”和”123321”都是回文。

代码:

#include <stdio.h>
//判断是否是回文 
int main()
{
	int i=0,j=0,k,a=0;
	char num[32] ={0},sum[32]={0};
	gets(num);
	for(i=0;i<32;i++)
	{
		if(num[i]!=0)
		{
			j++;
		}
		else 
		{
			break;
		}
	}
	if(j%2==0)
	{
		for(k=0;k<=(j/2);k++)
		{
			if(num[k]==num[j-1])
			{
				a++;
			}
			else
			{
				break;
			}
		}
		if(a!=0)
		{
			for(i=0;i<=j;i++)
			{
				printf("%c",num[i]);
			}
				printf("是回文"); 
		}
		else
		{
			for(i=0;i<=j;i++)
			{
				printf("%c",num[i]);
			}
				printf("不是回文"); 
			}		
	}
	else 
	{
		for(k=0;k<=(j-1)/2;k++)
		{
			if(num[k]==num[j-1])
			{
				a++;
			}
			else
			{
				break;
			}
		}
		if(a!=0)
		{
			for(i=0;i<=j;i++)
			{
				printf("%c",num[i]);
			}
				printf("是回文"); 
		}
		else
		{
			for(i=0;i<=j;i++)
			{
				printf("%c",num[i]);
			}
				printf("不是回文"); 
			}	
	}
	return 0; 
}

运行结果:

这几个例题全部自己写出来也就基本掌握数值的用法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值