用c++两种方法编写程序,创建包含 10 个数的数组,使用循环语句为数组赋值,输出 其中最大值及对应的元素下标。考虑整型、小数、字符等不同类型数组的情况
时间: 2024-05-24 12:14:33 浏览: 23
很高兴为您解答问题!
对于整型数组,可以使用以下两种方式来编写程序:
方法一:
#include <stdio.h>
int main()
{
int nums[10] = {0}; // 声明并初始化一个长度为 10 的整型数组
// 循环语句为数组赋值
for(int i = 0; i < 10; ++i)
{
printf("请输入第 %d 个整数:", i+1);
scanf("%d", &nums[i]);
}
// 找到数组中最大值及对应的元素下标
int max = nums[0], index = 0;
for(int i = 1; i < 10; ++i)
{
if(nums[i] > max)
{
max = nums[i];
index = i;
}
}
printf("最大值为:%d,下标为:%d\n", max, index);
return 0;
}
方法二:
#include <stdio.h>
int main()
{
int nums[10] = {0}; // 声明并初始化一个长度为 10 的整型数组
// 循环语句为数组赋值
int i = 0;
while(i < 10)
{
printf("请输入第 %d 个整数:", i+1);
scanf("%d", &nums[i]);
++i;
}
// 找到数组中最大值及对应的元素下标
int max = nums[0], index = 0;
i = 1;
while(i < 10)
{
if(nums[i] > max)
{
max = nums[i];
index = i;
}
++i;
}
printf("最大值为:%d,下标为:%d\n", max, index);
return 0;
}
对于小数类型数组,只需要将上面的 int 改成 float 即可,代码略。
对于字符类型数组,也可以使用相同的方法,只需将上面的 int 改成 char 即可,但是这种方式只适用于 ASCII 码,不适用于其它字符编码,如果涉及到其它字符编码,需要用 wchar_t 类型来代替 char 类型。同时,对于字符数组的比较,需要使用 strcmp() 函数而不是 > 和 < 运算符。另外,由于字符数组在输入时需要使用 scanf() 函数,因此需要注意格式化字符串的问题。具体可以参考下面代码:
#include <stdio.h>
#include <string.h>
int main()
{
char str[10][100]; // 声明并初始化一个长度为 10 的字符串数组
// 循环语句为数组赋值
for(int i = 0; i < 10; ++i)
{
printf("请输入第 %d 个字符串:", i+1);
scanf("%s", str[i]);
}
// 找到数组中最长的字符串及对应的元素下标
int max_len = strlen(str[0]), index = 0;
for(int i = 1; i < 10; ++i)
{
if(strlen(str[i]) > max_len)
{
max_len = strlen(str[i]);
index = i;
}
}
printf("最长的字符串为:%s,下标为:%d\n", str[index], index);
return 0;
}