Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
楼主: 无我不在
打印 上一主题 下一主题

【入门C作业】【strcmp / for / while】 #25楼 有Debug Coding提供。

[复制链接]

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

11#
发表于 2009-1-11 05:36 PM |只看该作者
原帖由 无我不在 于 2009-1-11 05:26 PM 发表


%i 什么作用,我运行出现乱码。是不是%d?

**我越写越自己乱了。抱歉



嗯.. 用 %d 代表 decimal, 你不要用 %i, 因為我用的編譯器可以支援 %i
去測試你就知道了


回复

使用道具 举报

14

主题

1

好友

1491

积分

黄金长老

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

12#
发表于 2009-1-11 05:47 PM |只看该作者
有一点进展了。

新的问题:
现在能储存多个了,可是不能显示之前的资料。比如说,第三次输入,回到menu要求显示第一份资料,结果倒回menu。我继续要求显示资料,这回要求第三份资料,结果显示成功。这说明第三次的资料覆盖了之前的资料,还是我在printf的时候没把空间分花清楚?


回复

使用道具 举报

14

主题

1

好友

1491

积分

黄金长老

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

13#
发表于 2009-1-11 05:52 PM |只看该作者
是不是在case ‘C’ 出现问题?还是在case 'B'的算术中的variable不能存储之前的资料?因为只能出现最后一次的资料。

case 'b'    :
            case 'B'    : printf("\n\n");
                          printf("Fill Your Descriptions in the following\n");
                          printf("=======================================");
                          printf("\n[S/N %d] Enter NRIC no.: ",a=a+1);
                          flushall();
                          scanf("%s", &icno[a]);
                          printf("[S/N %d] Enter Name: ", a);
                          flushall();
                          gets(name[a]);
                          printf("[S/N %d] Enter Date of Birth(DD-MM-YYYY): ", a);
                          flushall();
                          gets(DOB[a]);
                          printf("[S/N %d] Enter Sex(M/F): ", a);
                          flushall();
                          scanf("%c", &sex[a]);
                          printf("[S/N %d] Enter Total Income: $", a);
                          flushall();
                          scanf("%f", &total_income[a]);
                          printf("[S/N %d] Enter Total Relief: $", a);
                          flushall();
                          scanf("%f", &total_relief[a]);
                          printf("[S/N %d] Enter Total Rebate: $", a);
                          flushall();
                          scanf("%f", &total_rebate[a]);
                          printf("\n");

                          printf("**To compute and display your amount payment, please press C to continue.\n\n\n");
                                             
                          pre_payment[a] = total_income[a] - total_relief[a];

                          if(pre_payment[a]>=0 && pre_payment[a]<20000)
                          {
                              taxable_amount[a] = pre_payment[a] * 0;
                          }
                          else
                          {
                              if(pre_payment[a] > 20000 && pre_payment[a] <= 30000)
                              {
                                  taxable_amount[a] = 0 + (pre_payment[a]-20000) * 0.035;
                              }
                              else
                              {
                                  if(pre_payment[a] > 30000 && pre_payment[a] <= 40000)
                                  {
                                      taxable_amount[a] = 350 + (pre_payment[a]-30000) * 0.055;
                                  }
                                  else
                                  {
                                      if(pre_payment[a] > 40000 && pre_payment[a] <= 80000)
                                      {
                                          taxable_amount[a] = 900 + (pre_payment[a]-40000) * 0.085;
                                      }
                                      else
                                      {
                                          if(pre_payment[a] > 80000 && pre_payment[a] <= 160000)
                                          {
                                              taxable_amount[a] = 4300 + (pre_payment[a]-80000) * 0.14;
                                          }
                                          else
                                          {
                                              if(pre_payment[a] > 160000 && pre_payment[a] <= 320000)
                                              {
                                                  taxable_amount[a] = 15500 + (pre_payment[a]-160000) * 0.17;
                                              }
                                              else
                                              {
                                                  taxable_amount[a] = 42700 + (pre_payment[a]-320000) * 0.2;
                                              }
                                          }
                                      }
                                  }
                              }
                          }
                          amount_payment[a] = taxable_amount[a] - total_rebate[a];
                          break;

            case 'c'    :
            case 'C'    : printf("Enter Your NRIC: ");
                          flushall();
                          gets(icno_search);
                           
                            if(strcmp(icno[a], icno_search) == 0)
                            {
                                printf("\n\nYour Total Amount Payment");
                                printf("\n=========================");
                                printf("\nNRIC\t\t\t   : %s", icno[a]);
                                printf("\nName\t\t\t   : %s", name[a]);
                                printf("\nDate of Brith\t\t   : %s\n", DOB[a]);
                                printf("Sex\t\t\t   : %c\n\n", sex[a]);
                                printf("Total income\t\t   :  $%9.2f\n", total_income[a]);
                                printf("\t\tLess relief: -$%9.2f\n", total_relief[a]);
                                printf("Total taxable amount\t   :  $%9.2f\n", taxable_amount[a]);
                                printf("\t\tLess rebate: -$%9.2f\n", total_rebate[a]);
                                printf("\n");
                                printf("Amount payment\t\t   :  $%9.2f\n", amount_payment[a]);
                              }
                          printf("\n");

                          printf("**If you don't use this Tax Advisor Program, please press D to QUIT.\n\n\n");
                          break;

[ 本帖最后由 无我不在 于 2009-1-11 05:58 PM 编辑 ]


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

14#
发表于 2009-1-11 06:03 PM |只看该作者
原帖由 无我不在 于 2009-1-11 05:52 PM 发表
是不是在case ‘C’ 出现问题?还是在case 'B'的算术中的variable不能存储之前的资料?因为只能出现最后一次的资料。

            case 'C'    : printf("Enter Your NRIC: ");
                          flushall();
                          gets(icno_search);
                           
                            if(strcmp(icno[a], icno_search) == 0)
                            {
                                printf("\n\nYour Total Amount Payment");
                                printf("\n=========================");
                                printf("\nNRIC\t\t\t   : %s", icno[a]);
                                printf("\nName\t\t\t   : %s", name[a]);
                                printf("\nDate of Brith\t\t   : %s\n", DOB[a]);
                                printf("Sex\t\t\t   : %c\n\n", sex[a]);
                                printf("Total income\t\t   :  $%9.2f\n", total_income[a]);
                                printf("\t\tLess relief: -$%9.2f\n", total_relief[a]);
                                printf("Total taxable amount\t   :  $%9.2f\n", taxable_amount[a]);
                                printf("\t\tLess rebate: -$%9.2f\n", total_rebate[a]);
                                printf("\n");
                                printf("Amount payment\t\t   :  $%9.2f\n", amount_payment[a]);
                              }
                          printf("\n");

                          printf("**If you don't use this Tax Advisor Program, please press D to QUIT.\n\n\n");
                          break;


你想想看這行 icno_search 是在和哪個資料做比對??


回复

使用道具 举报

14

主题

1

好友

1491

积分

黄金长老

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

15#
发表于 2009-1-11 06:09 PM |只看该作者
原帖由 Super-Tomato 于 2009-1-11 06:03 PM 发表


你想想看這行 icno_search 是在和哪個資料做比對??

= =知道了,他只能和最后一次的资料对比罢了。
怎么解决?逻辑有点乱了。给我时间想想。


回复

使用道具 举报

14

主题

1

好友

1491

积分

黄金长老

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

16#
发表于 2009-1-11 06:36 PM |只看该作者

这份是我之前能能正常运作的作业。 strcmp在两份作业中有什么不同?

case 7 :printf("\n\tSearch by Number:");
                printf("\n\tEnter Mark:");
                scanf("%d", &srchmark);                                                               //search by %d variable
               
                printf("\n\tS/No\tName\tMark");
                printf("\n\t**********************************************");
                for(i=0; i<5; i=i+1)
                {
                    if(mark{i}==srchmark)
                    {
                        printf("\n\t%d\t%s\t%d", i, name{i}, mark{i});
                    }
                }
                printf("\n\t**********************************************");
                printf("\n");
                break;

        case 8 :printf("\n\tSearch by character:");
                printf("\n\tEnter Name:");
                flushall();
                gets(srchname);                                                      //search by %s variable

                printf("\n\tS/No\tName\tMark");
                printf("\n\t**********************************************");
                for(i=0; i<5; i=i+1)
                {
                    if(strcmp(name{i}, srchname) == 0)                         //also use strcmp to searching function.
                    {
                        printf("\n\t%d\t%s\t%d", i, name{i}, mark{i});
                    }
                }
                printf("\n\t**********************************************");
                printf("\n");
                break;


[ 本帖最后由 无我不在 于 2009-1-11 06:54 PM 编辑 ]


回复

使用道具 举报

13

主题

0

好友

2113

积分

白金长老

Rank: 10

17#
发表于 2009-1-11 07:04 PM |只看该作者
番茄 很努力也~~~



加油咯


回复

使用道具 举报

14

主题

1

好友

1491

积分

黄金长老

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

18#
发表于 2009-1-11 07:08 PM |只看该作者

回复 #17 goodday 的帖子

他很努力的在帮忙我。真的要谢谢他先。

我是不是不适合学programming?到现在还想不到方法。。。

版主不会C++吗?

[ 本帖最后由 无我不在 于 2009-1-11 07:17 PM 编辑 ]


回复

使用道具 举报

13

主题

0

好友

2113

积分

白金长老

Rank: 10

19#
发表于 2009-1-11 07:20 PM |只看该作者
我的 c++ 还回给老师咯
改还会 
写就 要查书咯

你的 我没时间帮忙 想 
很吃时间咯



你欠 番茄 一餐咯



回复

使用道具 举报

13

主题

0

好友

2113

积分

白金长老

Rank: 10

20#
发表于 2009-1-11 07:22 PM |只看该作者
没有适合不适合的 programmer 
只怕没行动的 programmer

你会 找 google 问人 年有行动咯

努力吧 


回复

使用道具 举报

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

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-10-26 10:33 AM , Processed in 0.117758 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部