C语言作业的题目,不会做
题目:函数fun的功能是:对a数组中n种商品价格进行分段统计,商品各段价格的数目存到b数组中;其中:价格为100元以下的个数存到b[0]中,价格为100元到199元的个数...
题目:函数fun的功能是:对a数组中n种商品价格进行分段统计,商品各段价格的数目存到b数组中; 其中:价格为100元以下的个数存到b[0]中,价格为100元到199元的个数存到b[1],价格为200元到299元的个数存到b[2],价格为300元到399元的个数存到b[3],价格为400元到499元的个数存到b[4],价格为500元以上的个数存到b[5]中。
int i; 或者 int i;
for(i=0;i<6;i++) b[i]=0; for(i=0;i<6;i++) b[i]=0;
for(i=0;i<strlen(a);i++) for(i=0;i<strlen(a);i++)
switch(a[i]/100) if(a[i]/100<5) b[a[i]/100]++;
{case 0: b[0]++;break; else b[5]++;
case 1: b[1]++;break;
case 2: b[2]++;break;
case 3: b[3]++;break;
case 4: b[4]++;break;
default: b[5]++;}
以上代码不能改。
我写的代码如下(错了很多):我写得很烂,希望各位大侠能帮我改改,或者给我个优化点的代码,谢le!
#include<stdio.h>
#include<string.h>
void fun(int a[])
{
int i,b[5];
for(i=0;i<6;i++)
b[i]=0;
for(i=0;i<strlen(a);i++)
switch(a[i]/100)
{
case 0:b[0]++;break;
case 1:b[1]++;break;
case 2:b[2]++;break;
case 3:b[3]++;break;
case 4:b[4]++;break;
default:b[5]++;
}
printf("the price under 100 yuan: %d\n",b[0]);
printf("the price for 100 to 200 yuan: %d\n",b[1]);
printf("the price for 200 to 300 yuan: %d\n",b[2]);
printf("the price for 300 to 400 yuan: %d\n",b[3]);
printf("the price for 400 to 500 yuan: %d\n",b[4]);
printf("the price more than 500 yuan: %d\n",b[5]);
}
void main()
{
int a[20],i,j,*k,n=20;
printf("the price of %d input\n",n);
for(i=0;i<n;i++)
scanf("%d",a+i);
fun(a);
说明下下面的程序是我随便写的。大家回答主要看上面的题目,题目的代码是要求的,不能乱改。
题目要求这样只能照着写。 展开
int i; 或者 int i;
for(i=0;i<6;i++) b[i]=0; for(i=0;i<6;i++) b[i]=0;
for(i=0;i<strlen(a);i++) for(i=0;i<strlen(a);i++)
switch(a[i]/100) if(a[i]/100<5) b[a[i]/100]++;
{case 0: b[0]++;break; else b[5]++;
case 1: b[1]++;break;
case 2: b[2]++;break;
case 3: b[3]++;break;
case 4: b[4]++;break;
default: b[5]++;}
以上代码不能改。
我写的代码如下(错了很多):我写得很烂,希望各位大侠能帮我改改,或者给我个优化点的代码,谢le!
#include<stdio.h>
#include<string.h>
void fun(int a[])
{
int i,b[5];
for(i=0;i<6;i++)
b[i]=0;
for(i=0;i<strlen(a);i++)
switch(a[i]/100)
{
case 0:b[0]++;break;
case 1:b[1]++;break;
case 2:b[2]++;break;
case 3:b[3]++;break;
case 4:b[4]++;break;
default:b[5]++;
}
printf("the price under 100 yuan: %d\n",b[0]);
printf("the price for 100 to 200 yuan: %d\n",b[1]);
printf("the price for 200 to 300 yuan: %d\n",b[2]);
printf("the price for 300 to 400 yuan: %d\n",b[3]);
printf("the price for 400 to 500 yuan: %d\n",b[4]);
printf("the price more than 500 yuan: %d\n",b[5]);
}
void main()
{
int a[20],i,j,*k,n=20;
printf("the price of %d input\n",n);
for(i=0;i<n;i++)
scanf("%d",a+i);
fun(a);
说明下下面的程序是我随便写的。大家回答主要看上面的题目,题目的代码是要求的,不能乱改。
题目要求这样只能照着写。 展开
展开全部
#include<stdio.h>
#include<string.h>
void fun(int a[],int n)
{
int i,b[6],pri[5]={100,200,300,400,500},t; //数组b开小了,导致下面的循环出不来
for(i=0;i<6;i++)
b[i]=0;
for(i=0;i<n;i++) //strlen()只能对字符串使用(比如说 char str[10]="abc")
{
t=a[i]/100; //优化了下
b[t>4?5:t]++;
}
printf("the price under 100 yuan: %d\n",b[0]);
for(i=0;i<4;i++) //优化了下
printf("the price for %d to %d yuan: %d\n",pri[i],pri[i+1],b[i+1]);
printf("the price more than 500 yuan: %d\n",b[5]);
}
void main()
{
int a[20],i,n=20;
printf("the price of %d input\n",n);
for(i=0;i<n;i++)
scanf("%d",a+i);
fun(a,n);
}
题目中的代码肯定是错误的。。。
#include<string.h>
void fun(int a[],int n)
{
int i,b[6],pri[5]={100,200,300,400,500},t; //数组b开小了,导致下面的循环出不来
for(i=0;i<6;i++)
b[i]=0;
for(i=0;i<n;i++) //strlen()只能对字符串使用(比如说 char str[10]="abc")
{
t=a[i]/100; //优化了下
b[t>4?5:t]++;
}
printf("the price under 100 yuan: %d\n",b[0]);
for(i=0;i<4;i++) //优化了下
printf("the price for %d to %d yuan: %d\n",pri[i],pri[i+1],b[i+1]);
printf("the price more than 500 yuan: %d\n",b[5]);
}
void main()
{
int a[20],i,n=20;
printf("the price of %d input\n",n);
for(i=0;i<n;i++)
scanf("%d",a+i);
fun(a,n);
}
题目中的代码肯定是错误的。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询