首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 語言新手常見錯誤:頭文件缺失、字符串未閉合、scanf 格式錯誤

     編輯:程式設計疑難解答

原始錯誤代碼

#include 
main()
{
    float x,y,a,b;
    printf ("請輸入長和寬且用逗號分隔:);
    scanf ("%f,%f,&x,&y);
    a=x*y;
    b=(x+y)*2;
    printf ("面積=%f,周長=%f\n",a,b);
}

三大核心錯誤分析

  1. 頭文件缺失:#include 後未指定頭文件名,應為 #include <stdio.h>。
  2. 字符串未閉合:printf 和 scanf 的格式字符串缺少右雙引號 "。
  3. scanf 格式字符串錯誤:"%f,%f,&x,&y" 將地址參數寫在格式字符串內部,正確應為 "%f,%f", &x, &y。

修正後的標準代碼

#include <stdio.h>

int main() {
    float x, y, a, b;
    
    printf("請輸入長和寬且用逗號分隔: ");
    // 返回值檢查確保輸入有效
    if (scanf("%f,%f", &x, &y) != 2) {
        printf("輸入格式錯誤!\n");
        return 1;
    }
    
    a = x * y;
    b = (x + y) * 2;
    
    printf("面積 = %.2f, 周長 = %.2f\n", a, b);
    return 0;
}

改進點說明

  • 主函數返回類型:標準 C 要求 int main() 並返回 0 表示成功。
  • 輸入驗證:檢查 scanf 返回值,防止非數字輸入導致變量未初始化。
  • 格式化輸出:使用 %.2f 保留兩位小數,提升可讀性。
  • 提示信息優化:冒號後加空格,錯誤提示友好。

新手避坑指南

常見錯誤正確寫法編譯器提示示例
#include 無文件名#include <stdio.h>fatal error: stdio.h: No such file or directory
字符串缺引號printf("hello");error: missing terminating " character
scanf("%d", a); 缺 &scanf("%d", &a);warning: format '%d' expects argument of type 'int *'
main 無返回值int main() { return 0; }warning: control reaches end of non-void function

擴展練習建議

  1. 修改程序支持多次計算,直到用戶輸入 q 退出。
  2. 添加長寬為正數的驗證邏輯。
  3. 使用 double 替代 float 提高精度。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved