返回列表 上一主題 發帖

while迴圈與if else if指令問題

while迴圈與if else if指令問題

最近剛學C語言................><真的好難喔!!可以直接請教大師們以下2個寫法轉換的問題嗎~~~~~~
請原諒小妹怎麼嘗試都改不出來的心情

1.將以下for迴圈改成while迴圈

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int n,i;
    long sum=0;/* 宣告為長整數 */
   
    printf("請輸入任一整數:");
    scanf("%d",&n);
   
    if(n>=1 || n<=100)/* 控制輸入範圍 */
    {
    for(i=0;i<n;i++)
     sum+=i*i; /* 1*1+2*2+3*3+..n*n */
     printf("1*1+2*2+3*3+...+%d*%d=%d\n",n,n,sum);
    }
    else
     printf("輸入數字超出範圍了!\n");
      
    system("pause");
    return 0;
}


2.將以下switch指令改成if else if指令

#include <stdio.h>
#include <stdlib.h>               

int main()
{
        char select;
        puts("    (1) 排骨便當");
        puts("    (2) 海鮮便當");
        puts("    (3) 雞腿便當");
        puts("    (4) 魚排便當");
        printf("    請輸入您要購買的便當:");
        select=getche();/*輸入字元並存入變數select*/
    printf("\n===================================\n");
   
        switch(select)
        {
        case '1':               /*如果select等於1*/
                puts("排骨便當一份75元");               
                break;                                        /*跳出switch*/
        case '2':         /*如果select等於2*/
                puts("海鮮便當一份85元");                  
                break;        /*跳出switch*/
        case '3':      /*如果select等於3*/
                puts("雞腿便當一份80元");               
                break;     /*跳出switch*/
        case '4':      /*如果select等於3*/
            puts("魚排便當一份60元");               
                break;   /*跳出switch*/
        default:        /*如果select不等於1,2,3,4任何一個*/
                printf("選項錯誤\n");                        
        }
    printf("===================================\n");
   
    system("pause");
    return 0;        
}
*宅女一枚無誤*

回復 1# msmplay

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int n,i;
    long sum=0;/* 宣告為長整數 */
   
    printf("請輸入任一整數:");
    scanf("%d",&n);
       
    i=1;
    if(n>=1 || n<=100)/* 控制輸入範圍 */
    {
            while(1)
            {
                if(i>n) break;
                sum+=i*i;
                i++;
        }

             printf("1*1+2*2+3*3+...+%d*%d=%d\n",n,n,sum);
    }
    else
             printf("輸入數字超出範圍了!\n");
      
    system("pause");
    return 0;
}

前半段

TOP

i=1;
    if(n>=1 || n<=100)/* 控制輸入範圍 */
    {
            while(i<=n)
            {
                sum+=i*i;
                i++;
        }
             printf("1*1+2*2+3*3+...+%d*%d=%d\n",n,n,sum);
    }
    else
             printf("輸入數字超出範圍了!\n");

這樣應該也可以吧!
不知道,還有沒有再更精簡的!

TOP

switch(select)
        {
        case '1':               /*如果select等於1*/
                puts("排骨便當一份75元");               
                break;                                        /*跳出switch*/
        case '2':         /*如果select等於2*/
                puts("海鮮便當一份85元");                  
                break;        /*跳出switch*/
        case '3':      /*如果select等於3*/
                puts("雞腿便當一份80元");               
                break;     /*跳出switch*/
        case '4':      /*如果select等於3*/
            puts("魚排便當一份60元");               
                break;   /*跳出switch*/
        default:        /*如果select不等於1,2,3,4任何一個*/
                printf("選項錯誤\n");                        
        }
//-------------------------------------------------------
if(select=='1')
        puts("排骨便當一份75元");               
else if (select=='2')
        puts("海鮮便當一份85元");
else if (select=='3')
        puts("雞腿便當一份80元");
else if (select=='4')
        puts("魚排便當一份60元");
else
        printf("選項錯誤\n");

TOP

本帖最後由 msmplay 於 2016-10-29 21:41 編輯

回復 4# mamimumemo


m大~~~你好厲害喔!!真的超級感謝你的,不過以後也要請你多多指教了
*宅女一枚無誤*

TOP

回復  mamimumemo


m大~~~你好厲害喔!!真的超級感謝你的,不過以後也要請你多多指教了
msmplay 發表於 2016-10-29 21:36


我是m小啦!
不客氣,好好加油吧!大家互相教學相長,:handshake
我剛來這裡,還算是學弟。
以前在業界曾寫過一段時間的c++,
所以,這還難不倒我啦!

TOP

本帖最後由 msmplay 於 2016-10-30 12:19 編輯

回復 6# mamimumemo

C++!!好厲害ㄛ~~~~~不過無論如何,還是再次感謝你熱心幫忙囉!
*宅女一枚無誤*

TOP

回復  mamimumemo

C++!!好厲害ㄛ~~~~~不過無論如何,還是再次感謝你熱心幫忙囉!
msmplay 發表於 2016-10-30 12:18


不客氣。
加油囉!

TOP

        靜思自在 : 世上有兩件事不能等:一、孝順 二、行善。
返回列表 上一主題