程序功能:求1-3+5-7+...-99+101的值。
注意:请勿改动主函数main中的任何内容,仅在函数花括号中填入你编写的若干语句
参考如下:
#include<stdio.h>
int main()
{
int i, flag, j, sum;
flag = 1;
j = 1;
sum = 0;
for (i = 1; i <= 101; i+=2)
{
sum += i * flag;
flag = -flag;
}
printf("%d", sum);
return 0;
}
for(i=1;i<102;i+=2)
{
sum+=i*flag;
flag=!flag;
}
供参考:
#include <stdio.h>
void main()
{
int i, flag, j, sum;
flag = 1;
j = 1;
sum = 0;
/************Program**************/
while (j <= 101) {
sum += flag * j;
j += 2;
flag = -flag;
}
printf("%d", sum);
/*********** End *************/
}
i = -1;
for(; j <= 101; j+=2)
{
sum += j * flag;
flag = i * flag;
}
此方法用到了所有题目中给的变量,如果有用麻烦给个采纳,谢谢~
数组名所对应的值就是第一个数组元素的内存地址,即可以把数组名看为指向数组元素的指针。我们可以对该指针进行解引用,从而对数组首元素进行访问
int a[5] = {10,20,30,40,50};
printf("The first element value: %d\n", *a);//后面的元素指针表示*(a+1)、*(a+2)、*(a+3)、*(a+4)
数组名a指向首地址
结果
The first element value: 10
通过该指针来修改首元素的值
int a[5] = {10,20,30,40,50};
*a = 100;
printf("The first element value: %d\n", *a);
结果
The first element value: 100
通过对数组名进行解引用,就可以对数组首元素进行访问和修改,与使用数组下标来访问和修改数组元素的效果相同。因此,认为*a等价于a[0]。*a=100等价于a[0]=100
也可以通过取地址符来获得数组首元素的内存地址,并将其存储到一个指针变量中
int a[5] = {10,20,30,40,50};
int *pi = &a[0];
printf("The first element value: %d\n",*pi);
由于数组名即是数组首元素的内存地址,因此,可以将第二条语句修改为
int*pi = a;//等价于int *pi = &a[0];
⁉️数组名a是否等同于指针变量pi呢?
❗❗❗答案是否定的,原因是指针变量的值可以改变,即储不同的内存地址值;而数组名永远就只能表示数组首元素的内存地址,不能被改变
pi = &a[1];//将数组第二个元素的内存地址赋值给指针变量pi
a = &a[1];//错误,数组名只能表示为首元素的内存地址,不允许被改变
数组名更像是一个指针常量,我们可以通过它来访问或修改它所指向的对象,但他自身的值不允许被修改,即永远只能指向数组中的第一个元素