本次博文就不在发先关概念和介绍,而是使用数组来做一些练习题。
基础篇:
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;
}
运行结果:
这几个例题全部自己写出来也就基本掌握数值的用法。