(2)已知数组a[5]={0,10,20,30,40}存放了五个整数,编写程序,要求输出其中的最大值元素。(利用常规下标法和指针法)。
时间: 2023-12-10 09:39:43 浏览: 36
利用常规下标法可以这样写:
```c++
#include <iostream>
using namespace std;
int main() {
int a[5] = {0, 10, 20, 30, 40};
int maxVal = a[0];
for(int i=1; i<5; i++) {
if(a[i] > maxVal) {
maxVal = a[i];
}
}
cout << "数组中的最大值为:" << maxVal << endl;
return 0;
}
```
利用指针法可以这样写:
```c++
#include <iostream>
using namespace std;
int main() {
int a[5] = {0, 10, 20, 30, 40};
int *p = a;
int maxVal = *p;
for(int i=1; i<5; i++) {
p++;
if(*p > maxVal) {
maxVal = *p;
}
}
cout << "数组中的最大值为:" << maxVal << endl;
return 0;
}
```
两者的输出结果均为:
```
数组中的最大值为:40
```
相关问题
用c++6.0编写程序 已知数组a[5]={0,10,20,30,40}存放了五个整数,要求输出其中的最大值元素。(利用常规下标法和指针法)。
常规下标法实现:
```c++
#include <iostream>
using namespace std;
int main()
{
int a[5] = {0, 10, 20, 30, 40};
int max_num = a[0];
for (int i = 1; i < 5; i++)
{
if (a[i] > max_num)
{
max_num = a[i];
}
}
cout << "最大值为:" << max_num << endl;
return 0;
}
```
指针法实现:
```c++
#include <iostream>
using namespace std;
int main()
{
int a[5] = {0, 10, 20, 30, 40};
int *p = a;
int max_num = *p;
for (int i = 1; i < 5; i++)
{
if (*(p + i) > max_num)
{
max_num = *(p + i);
}
}
cout << "最大值为:" << max_num << endl;
return 0;
}
```
已知数组n1,n2中各存放了两个20位整数的值,编写一个程序,我
可以计算出这两个整数的和。
很高兴回答你的问题。以下是一个简单的 C 语言程序,可以计算出两个20位整数的和:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 21
int main() {
char n1[MAX_LEN], n2[MAX_LEN], sum[MAX_LEN];
int carry = ;
// 读入两个20位整数
scanf("%s %s", n1, n2);
// 从低位到高位逐位相加
for (int i = MAX_LEN - 2; i >= ; i--) {
int digit1 = i < strlen(n1) ? n1[i] - '' : ;
int digit2 = i < strlen(n2) ? n2[i] - '' : ;
int digit_sum = digit1 + digit2 + carry;
carry = digit_sum / 10;
sum[i + 1] = digit_sum % 10 + '';
}
// 处理最高位的进位
sum[] = carry + '';
// 输出结果
printf("%s\n", sum);
return ;
}
```
这个程序使用了一个字符数组来存储输入的整数和它们的和,从低位到高位逐位相加,并处理进位。最后输出结果即可。