user-0 提问: c语言一道题 怎么做

回复:
user: user-1
content: 参考一下这个： #include <stdio.h>  int main( ) { 	int first_num, last_num; 	int odd_sum = 0, even_sum = 0; 	scanf( "%d %d", &first_num, &last_num ); 	for( int i = first_num; i <= last_num; i++ ) 	{ 		if( i % 2 == 0) 		{ 			even_sum += i * i; 		} 		else 		{ 			odd_sum += i * i * i; 		} 	} 	printf( "The sum of even number is : %d\n", even_sum ); 	printf( "The sum of odd number is : %d\n", odd_sum );  	return 0; }

user: user-2
content: #include <stdio.h> int main() { int b,c; scanf("%d %d",&b,&c); int a[c],i,s=0,d=0;            //没错  for(i=b;i<=c;i++)             //这段有些问题你只能用输入的数来确定数组的大小，而不能用来确定他们在数组中的位置                          a[i]=i;                             for(i=b;i<=c;i++)           {if[i]%2==0) s=s+a[i]*a[i]; else d=d+a[i]*a[i]*a[i];} printf("%d %d",s,d)      return 0; }

user: user-3
content: 路过，10分到手

user: user-4

user: user-5
content: 引用 5 楼 truelance 的回复:我这段代码有好几个错误你没看出来么?  本来是想改正LZ的一处错误，结果发现这个代码问题很多。1楼已经贴了代码，我就懒得写了。

user: user-6
content: 引用 4 楼 zxh707wk 的回复:[quote=引用 2 楼 truelance 的回复:] 编程语言分为编译型和解释型(脚本语言)，像c这样的编译型语言基本都不支持int a[c];这样定义的动态太小的数组。 这个题目完全没必要用数组 另外c中，变量必须在函数开头定义。只有到了c++，才允许在函数中间定义变量。  #include <stdio.h> int main(void) {     int b,c;     int s=0, d=0;     int i;     scanf("%d %d",&b,&c);     for(i=b;i<=c;i++)     {         if[i]%2==0)             s=s+i*i;         else             d=d+i*i*i;     }     printf("%d %d",s,d)     return 0; } +1,这下不用写代码了[/quote] 我这段代码有好几个错误你没看出来么?  本来是想改正LZ的一处错误，结果发现这个代码问题很多。1楼已经贴了代码，我就懒得写了。

user: user-5
content: 引用 2 楼 truelance 的回复:编程语言分为编译型和解释型(脚本语言)，像c这样的编译型语言基本都不支持int a[c];这样定义的动态太小的数组。 这个题目完全没必要用数组 另外c中，变量必须在函数开头定义。只有到了c++，才允许在函数中间定义变量。  #include <stdio.h> int main(void) {     int b,c;     int s=0, d=0;     int i;     scanf("%d %d",&b,&c);     for(i=b;i<=c;i++)     {         if[i]%2==0)             s=s+i*i;         else             d=d+i*i*i;     }     printf("%d %d",s,d)     return 0; } +1,这下不用写代码了

user: user-7
content: #include <stdio.h> int main() { int b,c; scanf("%d %d",&b,&c); int a[c],i,s=0,d=0;     //这里定义a[c]，表示这个数组有c个元素。这里没错。  for(i=b;i<=c;i++)       //你这段就有问题，如果我输入2,4.那么你只能从a[2]也就是                         //数组的第三个值赋值，前面就是空的，后面又溢出了。  a[i]=i;                 //你只能用输入的数来确定数组的大小，而不能用来确定他们在数组中的位置  for(i=b;i<=c;i++) {if[i]%2==0) s=s+a[i]*a[i]; else d=d+a[i]*a[i]*a[i];} printf("%d %d",s,d)      return 0; }  具体怎么做你自己想想看，不难的

user: user-6
content: #include <stdio.h> int main(void) {      int b,c;      int s=0, d=0;      int i;      scanf("%d %d",&b,&c);      for(i=b;i<=c;i++)      {          if[i]%2==0)              s=s+i*i;          else             d=d+i*i*i;      }      printf("%d %d\n",s,d);      return 0;  }

user: user-6
content: 编程语言分为编译型和解释型(脚本语言)，像c这样的编译型语言基本都不支持int a[c];这样定义的动态太小的数组。 这个题目完全没必要用数组 另外c中，变量必须在函数开头定义。只有到了c++，才允许在函数中间定义变量。  #include <stdio.h> int main(void) {     int b,c;     int s=0, d=0;     int i;     scanf("%d %d",&b,&c);     for(i=b;i<=c;i++)     {         if[i]%2==0)             s=s+i*i;         else             d=d+i*i*i;     }     printf("%d %d",s,d)     return 0; }

user: user-8
content: #include <stdio.h> int main() {   int i, j;   unsigned int sum_even, sum_odd;    while (1)   {     sum_even = sum_odd = 0;     scanf("%d %d", &i, &j);      for (; i <= j; ++i) {       if (0 == i % 2) // even         sum_even += i * i;       else         sum_odd += i * i * i;     }     printf("%u %u\n", sum_even, sum_odd);   }      return 0; }