7-5 求整型数组前n个数中正数之和。 (10 分)

1.本题目要求从键盘读入一个正整数n(1<=n<=10),然后输入n个整数依次送入整型数组,再对其中的正数求和并输出结果。

2.输入格式:

在第一行中输入n的值,回车后在第2行输入n个整数(有正有负,以空格分隔)后,以回车结束输入。

3输出格式

如输入n的值不合乎要求,则直接输出error!
(不必输出换行符)即可。不需要再后续输入数据。 
否则,输出数组的前n个元素中其中正数的和即可。不需要附加修饰说明。

4.输入样例:
在这里给出一组输入。例如:

8
3 -3 1 2 -4 5 5 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是回复: 可以按照以下步骤实现: 1. 在main函数定义一个整型数组,存放用户输入的10个整数。 2. 定义三个变量,别用于统计正数、负数和零的个数,初始值都为。 3. 声明一个指向整型数组的指针变量,指向刚才定义的数组。 4. 遍历数组,判断每个元素的正负性,根据判断结果更新对应的计数变量。 5. 输出统计的数值。 下面是示例代码: ```c #include <stdio.h> int main() { int nums[10]; // 定义整型数组 int positive = , negative = , zero = ; // 定义三个计数变量,初始值都为 int *p = nums; // 声明指向整型数组的指针变量,指向nums数组的首地址 printf("请输入10个整数:\n"); for (int i = ; i < 10; i++) { scanf("%d", p + i); // 通过指针变量输入数组元素 if (*(p + i) > ) { // 判断正数 positive++; } else if (*(p + i) < ) { // 判断负数 negative++; } else { // 判断零 zero++; } } printf("正数个数:%d\n负数个数:%d\n零的个数:%d\n", positive, negative, zero); // 输出统计结果 return ; } ``` 希望能对你有所帮助! ### 回答2: 在main函数,我们可以定义一个长度为10整型数组来存放用户输入的10个整数。我们还需要定义三个变量来统计正数、负数和零的个数。然后,定义指针变量指向此整型数组。 代码如下: ``` #include <stdio.h> int main() { int arr[10]; int positive_count = 0, negative_count = 0, zero_count = 0; int *p = arr; printf("请输入10个整数:\n"); for (int i = 0; i < 10; i++) { scanf("%d", p + i); if (*(p + i) > 0) { positive_count++; } else if (*(p + i) < 0) { negative_count++; } else { zero_count++; } } printf("正数个数:%d\n", positive_count); printf("负数的个数:%d\n", negative_count); printf("零的个数:%d\n", zero_count); return 0; } ``` 在代码,我们使用指针变量p访问数组元素,以统计正数、负数和零的个数。在输入数据时,我们使用p+i来访问第i个数组元素。 最后,我们输出统计的数值。运行程序,输入10个整数,程序将给出正数、负数和零的个数。 ### 回答3: 在main函数定义一个整型数组,用来存放用户输入的10个整数。可以通过以下代码实现: ```c++ int num[10]; for(int i=0;i<10;i++){ cin>>num[i]; } ``` 接着,可以定义三个变量count1、count2、count3别用来记录正数、负数、零的个数。利用指针变量指向此整型数组,并统计数组正数、负数以及零的个数。可以通过以下代码实现: ```c++ int *p=num; int count1=0, count2=0, count3=0; for(int i=0;i<10;i++){ if (*p>0){ count1++; }else if(*p<0){ count2++; }else{ count3++; } p++; } ``` 在统计过程,用指针p依次遍历整个数组,如果当指向的元素大于0,则正数计数器count1加1;如果小于0,则负数计数器count2加1;如果等于0,则零计数器count3加1。每次遍历后,指针p应该指向数组下一个元素的地址。 最后,输出统计的数值即可。完整代码如下: ```c++ #include<iostream> using namespace std; int main(){ int num[10]; cout<<"请输入10个整数:"<<endl; for(int i=0;i<10;i++){ cin>>num[i]; } int *p=num; int count1=0, count2=0, count3=0; for(int i=0;i<10;i++){ if (*p>0){ count1++; }else if(*p<0){ count2++; }else{ count3++; } p++; } cout<<"正数个数为:"<<count1<<endl; cout<<"负数个数为:"<<count2<<endl; cout<<"零的个数为:"<<count3<<endl; return 0; } ``` 执行程序,输入如下数据: ``` 请输入10个整数: 1 2 3 4 5 -1 -2 -3 -4 0 ``` 程序输出: ``` 正数个数为:5 负数个数为:4 零的个数为:1 ``` 这说明在这10个数,有5个正数、4个负数和1个零。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值