鱼C论坛

 找回密码
 立即注册
查看: 1550|回复: 5

[已解决]不知道哪里出错了,帮忙看看啊,我快疯了!!

[复制链接]
发表于 2017-4-22 19:31:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int a,b;
  5.         const int number;
  6.         int count = 0;
  7.         int f1[number],f2[number],f[number];
  8.         int i,j;
  9.        
  10.         do{
  11.         scanf("%d %d",&a,&b);
  12.         f1[a] = b;
  13.         }while(a != 0);
  14.        
  15.         do{
  16.         scanf("%d %d",&a,&b);
  17.         f2[a] = b;
  18.         }while(a != b);
  19.        
  20.         int length1 = sizeof(f1)/sizeof(f1[0]);
  21.         int length2 = sizeof(f2)/sizeof(f2[0]);
  22.         for( i=length1-1 ; i>=0 ; i-- ){
  23.                 for( j=length2-1 ; j>=0 ; j-- ){
  24.                         if(i == j){
  25.                                 f[i] = f1[i] + f2[j];
  26.                                 printf("%dx%d+",f[i],i);
  27.                         }
  28.                         else if(i < j){
  29.                                 printf("%dx%d+%dx%d+",f2[j],j,f1[i],i);
  30.                         }
  31.                         else{
  32.                                 printf("%dx%d+%dx%d+",f1[i],i,f2[j],j);
  33.                         }
  34.                 }
  35.         }
  36.         printf("\b ");
  37.         return 0;
  38. }
复制代码
最佳答案
2017-4-22 19:59:38
星若有泪 发表于 2017-4-22 19:56
因为下标还不确定啊    那该怎么解决这个问题???

.最直接方法给number赋值,没有常量不能定义数组的,你自己定义number的时候都是给了他一个常量关键字,然后没有任何值,这种写法也是有问题的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-22 19:39:31 | 显示全部楼层
基础需要巩固啊
const int number;
你的number都没有赋值就使用了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-22 19:56:45 | 显示全部楼层
lumber2388779 发表于 2017-4-22 19:39
基础需要巩固啊
const int number;
你的number都没有赋值就使 ...

因为下标还不确定啊    那该怎么解决这个问题???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-22 19:59:38 | 显示全部楼层    本楼为最佳答案   
星若有泪 发表于 2017-4-22 19:56
因为下标还不确定啊    那该怎么解决这个问题???

.最直接方法给number赋值,没有常量不能定义数组的,你自己定义number的时候都是给了他一个常量关键字,然后没有任何值,这种写法也是有问题的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-22 21:22:44 | 显示全部楼层
lumber2388779 发表于 2017-4-22 19:59
.最直接方法给number赋值,没有常量不能定义数组的,你自己定义number的时候都是给了他一个常量关键字, ...

已经改了 但还是不符合要求    题目是多项式的运算
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int a,b;
  5.         const int number = 100;
  6.         int f1[number],f2[number],f[number];
  7.         int i,j;
  8.         for( i=0 ; i<number ; i++ ){
  9.                 f1[i] = 0;
  10.                 f2[i] = 0;
  11.                 f[i] = 0;
  12.         }
  13.        
  14.         if(a>=0 && a<=100){
  15.         do{
  16.         scanf("%d %d",&a,&b);
  17.         f1[a] = b;
  18.         }while(a != 0);
  19.         do{
  20.         scanf("%d %d",&a,&b);
  21.         f2[a] = b;
  22.         }while(a != 0);
  23.         }
  24.        
  25.         int length1 = sizeof(f1[number])/sizeof(f1[0]);
  26.         int length2 = sizeof(f2[number])/sizeof(f2[0]);
  27.        
  28.        
  29.         for( i=0 ; i<length1 ; i++ ){
  30.                 for( j=0 ; j<length2 ; j++ ){
  31.                         f[i] = f1[i] + f2[i];
  32.                 }
  33.         }  
  34.         int length = sizeof(f[number])/sizeof(f[0]);
  35.         for( i=length-1 ; i>=0 ;i-- ){
  36.                 if(i == 0){
  37.                         printf("%d",f[i]);
  38.                 }else if(f[i] == 0){
  39.                         printf("");
  40.                 }else{
  41.                         printf("%dx%d+",f[i],i);
  42.                 }
  43.         }
  44.         printf("\b ");     
  45.         return 0;
  46. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-22 22:30:47 | 显示全部楼层
星若有泪 发表于 2017-4-22 21:22
已经改了 但还是不符合要求    题目是多项式的运算

int length1 = sizeof(f1[number])/sizeof(f1[0]);
int length2 = sizeof(f2[number])/sizeof(f2[0]);
这两句计算方法不对 f1[number]和f2[number]都是具体的数值,都是int类型与f1[0] f2[0]都是一致的,算出来都是1,而且sizeof计算f1和f2算出来的都是总长度就是100*4 4为int类型的字节数
在上边你可以给一个统计输入数字个数的下边用于控制就可以
  1. if(a>=0 && a<=100){
  2.         do{
  3.         scanf("%d %d",&a,&b);
  4.         f1[a] = b;
  5.         }while(a != 0);
  6.         do{
  7.         scanf("%d %d",&a,&b);
  8.         f2[a] = b;
  9.         }while(a != 0);
  10.         }
复制代码

感觉这段有点太复杂,用for循环控制输入两个数分别给f1和f2,判断输入的值不是0就可以继续输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 06:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表