當前位置:首頁 » 編程語言 » c語言的詭異事件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言的詭異事件

發布時間: 2022-08-17 21:41:21

『壹』 這么一段簡單的c語言代碼竟然有五個錯誤,詭異啊……WHY

呵呵,我找到原因了!
你是在Vc6上運行的撒,如果你開始建文件時文件後綴名建的是.c 那麼這編譯環境就是按照C89標准來的,那樣的話聲明就必須放在執行語句前面!即是
#include<stdio.h>
void main()
{
int a,b,c,d;
printf("請輸入一個三位數:\n");
scanf("%d",&a);
b=a/100;
c=a/10-b*10;
d=a%10;
printf("%d,%d,%d",b,c,d);
}

如果你不用.c 做文件後綴名,也就是在C++環境下,也就是用的C99這一做法,可以靈活聲明變數了!不一定要在執行語句前。

你試一試就知道了,我開始執行也是5個錯誤,因為平時做C語言時都習慣建成.c文件。

你在你同學機子上可以,那是你同學建的時候沒用這樣的文件名,建出來就是C++文件。

又是一個小經驗,呵呵

『貳』 一個關於C語言中float的問題,很詭異的問題!

你的程序沒問題,我用你的程序在ppc+gcc+debian6環境上可得到正確結果:
0.01*1.00=0.01
0.02*1.00=0.02 0.02*2.00=0.04
0.03*1.00=0.03 0.03*2.00=0.06 0.03*3.00=0.09
0.04*1.00=0.04 0.04*2.00=0.08 0.04*3.00=0.12 0.04*4.00=0.16
0.05*1.00=0.05 0.05*2.00=0.10 0.05*3.00=0.15 0.05*4.00=0.20 0.05*5.00=0.25
0.06*1.00=0.06 0.06*2.00=0.12 0.06*3.00=0.18 0.06*4.00=0.24 0.06*5.00=0.30 0.06*6.00=0.36
0.07*1.00=0.07 0.07*2.00=0.14 0.07*3.00=0.21 0.07*4.00=0.28 0.07*5.00=0.35 0.07*6.00=0.42 0.07*7.00=0.49
0.08*1.00=0.08 0.08*2.00=0.16 0.08*3.00=0.24 0.08*4.00=0.32 0.08*5.00=0.40 0.08*6.00=0.48 0.08*7.00=0.56 0.08*8.00=0.64
0.09*1.00=0.09 0.09*2.00=0.18 0.09*3.00=0.27 0.09*4.00=0.36 0.09*5.00=0.45 0.09*6.00=0.54 0.09*7.00=0.63 0.09*8.00=0.72 0.09*9.00=0.81
程序么,只在printf的部分稍微做了些修改:
#include <stdio.h>
main()
{
float a,b,c;
for(a=0.01;a<=0.09;a=a+0.01){
for(b=1;b<=a*100;b++){
c=a*b;
printf("%1.2f*%1.2f=%1.2f ",a,b,c);
}
printf("\n");
}
}
所以應該是編譯環境的問題,仔細檢查一下編譯鏈接的輸出信息與編譯指令。

『叄』 詭異的C語言程序。。各位大蝦救命啊

你那個i<=10,當i=10時,下面的x=a[i+1];是越界的哦。
其實就是實現從找到的元素地方逐個後移。比較簡單實現如下:
#include<stdio.h>
void main()
{
int x, y, i, a[11]={2,4,6,8,10,12,14,16,18,20};
scanf("%d", &x);
for (i = 0; i <= 9; i++)
{
if (a[i] >= x)
{
//for ( ; i < 10; i++) // i<=10 則 i+1越界,故改為i<10,i+=2,不對,改為i++
//{
// y = a[i];
// a[i] = x;
// x = a[i+1];
// a[i+1] = y;
//}
//break;

int j;
for (j = 10; j > i; j--)
a[j] = a[j-1];
a[i] = x;
break;
}
}
if (i == 10)
a[i] = x;
for (i = 0; i <= 10; i++)
printf("%3d", a[i]);
printf("\n");
}

『肆』 c語言中的數組選擇排序,為什麼運行時候的錯誤很詭異

for(i=0;i<count;i++){

min=a[0];

for(j=i+1;j<count;j++){

if(min>a[j]){

min=a[j];

}

}

t=a[j];

a[j]=a[i];

a[i]=t;

}

這一段寫得太詭異了!請改成:

for(i=0;i<count;i++){//選擇法是這樣寫的——

t=i;

for(j=i+1;j<count;j++){

if(a[t]>a[j]){

t=j;

}

}

if(t!=i){//不加這個判斷和冒泡就基本無異

j=a[i];

a[i]=a[t];

a[t]=j;

}

}

然後——

  1. 把min變數刪除。

  2. if(i) printf("");刪除——打一個""就是什麼都不打,這有啥意義?

  3. 把printf("%d",a[i]);改成printf("%d ",a[i]);——%d加一個空格。

  4. 在return 0;前加一句printf(" ");。

『伍』 C語言,遇到一個奇怪的事情,分享下,一個倒序輸出的問題,其他都能順利輸出,就Hello World不能正常輸出

#include<stdio.h>
#include<math.h>
intmain()
{
charsen[255];
inti;
printf("pleaseinputasentence: ");
for(i=0;i<255;i++)
{
scanf("%c",&sen[i]);
if(sen[i]==' ')
break;
}
i--;//只需讓i的值-1即可
for(;i>-1;i--)
{
putchar(sen[i]);
}
return0;
}

『陸』 C語言又一個詭異的bug 返回值為什麼是1!!!

糾正你一個錯誤,輸出的結果是1,返回的是0,return語句是返回的語句。

『柒』 c語言求解,為什麼我的程序運行出來的結果很詭異,利潤哪怕一百,獎金也有一千多萬,汗。。。求大神看看

在程序中200000<i<=400000應該表示為200000<i&&i<=400000#include "stdio.h"#include "conio.h"main(){float i,b,b1,b2,b4,b6,b10; printf("Input Please:"); scanf("%f",&i); b1=100000*0.1; b2=b1+100000*0.075; b4=b2+200000*0.05; b6=b4+200000*0.03; b10=b6+400000*0.015; if (100000>i) b=i*0.1; else if(100000<i&&i<=200000)//程序中這樣表示!下面一樣! b=b1+(i-100000)*0.075; else if(200000<i&&i<=400000) b=b2+(i-200000)*0.05; else if(400000<i&&i<=600000) b=b4+(i-400000)*0.03; else if(600000<i&&i<=1000000) b=b6+(i-600000)*0.015; else b=b10+(i-1000000)*0.01; printf("Bonus=%6.2f",b); getch();

『捌』 用c語言寫冒泡法,結果詭異,輸出 -858993460 1 2 3 5 6 7 8 9 10 為什麼會這樣

#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#define N 10 //這里把N定義成10就可以了

int _tmain(int argc, _TCHAR* argv[])
{
int k;
int a[N]={2,1,3,22,6,5,7,8,9,10};//定義一個大小為10的數組
for(int i=0;i<N-1;i++)
{
for(int j=i+1;j<N;j++)
{
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
}
for(int s=0;s<N;s++)
{
printf("%d\n",a[s]);
}
getch();
return 0;
}

『玖』 c語言門的事件概述

c語言門又稱水木c語言事件、c語言門,講述的是網友在水木社區bbs上發帖自曝女友清華大學二年級學生胡某劈腿的故事。2010年1月10日,水木社區BBS上,網友「puppyxy」發布的帖子「竟然我mm是劈腿女,而且到現在還不承認」攪得網路波瀾四起,帖子稱自己的女友因為C語言作業,勾引學長與之開房,並因此和自己分手。此後發帖人澄清,劈腿事件與C語言作業無關,其沒想到會引起如此風波,願息事寧人。
此帖在大旗、貓撲等網站引發熱議,被網友戲稱為清華大學「C語言門」。其中貓撲貼貼論壇的帖子「清華驚曝C語言門!一女為C語言作業和人上床!圖-真相!」發出後引起網友非常強烈的反響,13日一天之內該帖點擊超過100萬。

『拾』 關於C語言的一個詭異問題

1.程序有些問題
scanf(" %d ",&a);,應該是&a[i],其他地方類似,不過這個與問題無關
2.關於那個問題:scanf(" %d ",&a);是這行代碼的問題,注意" %d ",%d前面有個空格,因此必須輸入一個空格,否側就少了了一個字元,系統會認為輸入不夠。是格式問題。如果輸入時,改成「空格加數字」也沒有樓主的問題
3.暈,居然沒懸賞分。。。浪費感情。。。