#include<stdio.h> #define N 10 void main() { int i,sum,*p,a[N]={1,3,5,7,9,11,13,15,17,19}; /*$ERROR1$*/ for(p=a[N-1];p>=&a[0];p--) /*$ERROR2$*/ sum+=p; /*$ERROR3$*/ printf("sum=%d\n",sum); }
时间: 2024-04-09 09:27:26 浏览: 20
#include<stdio.h>
#define N 10
void main()
{
int i, sum = 0, *p, a[N]={1,3,5,7,9,11,13,15,17,19}; /*$ERROR1$*/
for(p = &a[N-1]; p >= &a[0]; p--) /*$ERROR2$*/
sum += *p; /*$ERROR3$*/
printf("sum=%d\n", sum);
}
相关问题
完善下面求平均值的程序 #include <stdio.h>#include <math.h>#include <string.h> void input(Census data[]) { int i; for ( i = 0; i < SIZE; i++) { printf("请输入第 %d 次普查年份: ", i+1); scanf("%d", &data[i].year); printf("请输入第 %d 次普查全国人口数目: ", i+1); scanf("%f", &data[i].population); }} float average(Census data[]) { float sum = 0; int i; for ( i = 0; i < SIZE; i++) { sum += data[i].population; } return sum / SIZE;}
这段程序中,我们需要自己定义一个Census结构体,其中包含年份和人口数目两个成员变量,并且假设程序中已经定义了SIZE常量表示普查的次数。完整的程序如下:
#include <stdio.h>
#include <math.h>
#include <string.h>
#define SIZE 3
typedef struct {
int year;
float population;
} Census;
void input(Census data[]) {
int i;
for (i = 0; i < SIZE; i++) {
printf("请输入第 %d 次普查年份: ", i+1);
scanf("%d", &data[i].year);
printf("请输入第 %d 次普查全国人口数目: ", i+1);
scanf("%f", &data[i].population);
}
}
float average(Census data[]) {
float sum = 0;
int i;
for (i = 0; i < SIZE; i++) {
sum += data[i].population;
}
return sum / SIZE;
}
int main() {
Census data[SIZE];
input(data);
printf("全国人口平均数目为: %.2f\n", average(data));
return 0;
}
#include<stdio.h> #define A 10 void main() { int k=0,sum=0; do{ if(k= =(k/2)*2) continue; sum+=k; } while( ++k<A); printf("%d\n",sum) ; }为什么输出结果是25
这段代码的输出结果是25,因为它是对1~9之间的奇数求和。具体来说,代码中的do-while循环从0开始迭代,每次迭代将k加1。在每次迭代中,如果k是偶数,那么continue语句会跳过当前迭代,直接进入下一次迭代。如果k是奇数,那么就将它加到sum变量中。最终,sum就是1到9之间所有奇数的和,也就是25。注意,代码中的if(k== (k/2)*2)实际上是在判断k是否为偶数,因为对于任意一个偶数k,它与自己除以2再乘以2的结果相等,而对于任意一个奇数k,这个结果就不相等了。