當前位置:首頁 » 編程語言 » 數組輸入時遇到結束c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

數組輸入時遇到結束c語言

發布時間: 2022-09-24 17:32:38

c語言怎麼判斷輸入的結束

一般有兩種方法:
1 在輸入前 約定輸入個數。 比如 先輸入一個總數 再輸入總數個或總數組的數據
2 約定輸入結束標記
這個是最常用的。 比如 以空格 換行 或者EOF作為結束標記。
或者約定輸入非法數據結束。

⑵ 求助,C語言中怎麼判斷一個數組以輸入結束

一般是限制輸入數組元素的個數,或者限定條件,比如輸入的數值大於1的時候結束輸入等等方法。

⑶ 在C語言中,怎樣輸入數列 以回車符''為結束標志

  1. 可以每讀入一個數據到數組當中去,判斷後面的空白字元是否為換行符,如果遇到換行符,就結束循環。

  2. 代碼框架:

    inti=0,a[100];
    do{
    scanf("%d",&a[i++]);//讀入數據到數組當中
    }while((getchar())!=' ')

⑷ 輸入二維數組直到輸入的n為-1結束c語言該怎樣寫 是不是要有while(scanf("%d",n),n+1),然後再輸入數組元素

c++的代碼
const int r=3,c=2;//r代表2維數組的行數,c代表2維數組的列數
int arr[r][c]={0},n=0;
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
cin>>n;//輸入n
if(n!=-1)//如果n不等於-1
arr[i][j]=n;//就把n付給數組元素
else//否則,退出循環
break;
}
if(n==-1)
break;
}
c也是這個思路。

⑸ c語言中怎麼用EOF來結束數組輸入

eof
是個宏,其意思是:end
of
file,文件尾標志。
從數值上來看,就是整數-1
在c語言的頭文件中對其進行了宏定義:
libio.h: # define eof (-1)當讀文件操作時,遇到文件結束位置或讀數據出錯均會返回
eof。
(c語言中所有的輸入輸出操作均是按讀文件的思想來設計的,或者說,是文件操作的一種特例,如getchar()就是fgetc(stdin)
的一個宏

int getchar() ; //從標准輸入緩沖區讀取一個字元,成功返回該字元的ascii值,出錯,返回eof那麼,如何在鍵盤輸入時,產生eof呢?
不同的系統方法不同:
linux系統下,在輸入回車換行後的空行位置,按
ctrl+d
(先按ctrl鍵,不放,再按d鍵)
windows系統下,在輸入回車換行後的空行位置,按
ctrl+z,再回車確認
以下代碼供參考:
#include
void main()
{
int ch;
do {
ch=getchar();
printf("ch=%d\n", ch ); //輸出讀返回的ch值,讀到eof會輸出-1
} while ( ch!=eof );
}

⑹ c語言矩陣數組輸入,求指教,怎麼判斷結束

首先我沒看到你初始化二維數組a[m][n],另外for語句的判斷語句和條件語句寫反了,應該是for(i = 0;i < m;i++),你那種寫法當然會一直循環。

⑺ C語言怎樣讀入一個數組,然後在回車時結束讀入

//你可以用do..while實現
//之所以用do..while是因為它在讀入'?'之後再結束循環
#include <stdio.h>
int main()
{
char ch[10],c;
int i=0;
do
{
if((c=getchar())=='\n')//一旦輸入回車就把當前元素賦值為?
ch[i]='?';
else
ch[i]=c;//沒輸入回車則賦值為你輸入的字元
++i;
}while(c!='\n');
ch[i]='\0';//我主要為了下面使用puts函數,加了個字元串結束標志
puts(ch);
return 0;
}

⑻ C語言 好幾個一維的數組 如何結束輸入

當讀到EOF時結束
Windows採用Ctrl+Z產生一個EOF,*nix採用Ctrl+D產生一個EOF
文件末尾本來就是一個EOF

⑼ C語言在輸入一維數組時,如果想要用回車停止輸入,那麼這種寫法對嗎

這還真有點小學問,如果是字元數組,if(a[i]!=' ') break;就可以了,但得把不需要的那個' '從數組中用a[i]='';抹掉並添加了結束符。要是數字數組,比如整數數組呢,上面方法就不湊效了。用下面代碼可實現——

⑽ c語言 數組輸入時會自動停止

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0,j=0,k=0,b=0,c[6]={0};
float a[30][2],aver,s=0;
/* for (i=0;i<6;i++)
{
c[i]=0;
}*///可用memset(c,0,24)來代替;其實最好直接定義時用c[6]= {0};很簡單
for (i=0;i<30;i++)
{
for(j=0;j<2;j++)
{
scanf("%f",&a[i][j]);
// if (a[i][1]<0)//這里第一次只輸入了a[i][0],但你對a[i][1]判斷當然出錯了……
if (a[i][j]<0)//改成這樣違背你的本意么
break;
}
if (a[i][1]<0)
break;
}
printf("Total students:%d ",i);
printf("Fail: number--score ");
for (b=0;b<i;b++)
{
if(a[b][1]<60)
{
printf("%.0f------%.0f ",a[b][0],a[b][1]);
k++;
}
}
printf("Fail students = %d ",k);
for (b=0;b<i;b++)
{
s=s+a[b][1];
}
aver = s/i;
printf("aver = %.6f ",aver);
printf("Above aver: ");
printf("number--score ");
k=0;
for(b=0;b<i;b++)
{
if(a[b][1]>aver)
{
printf("%.0f------%.0f ",a[b][0],a[b][1]);
k++;
}
}
printf("Above aver students = %d ",k);
for (b=0;b<i;b++)
{
if (a[b][1]<60)
c[0]++;
else if (a[b][1]<70)
c[1]++;
else if (a[b][1]<80)
c[2]++;
else if (a[b][1]<90)
c[3]++;
else if (a[b][1]<100)
c[4]++;
else c[5]++;
}
printf("<60 %d %2f%% ",c[0],(float)c[0]/i*100);//(int/int)是不行滴,要轉換成float才能算%比
printf("60--69 %d %2f%% ",c[1],(float)c[1]/i*100);
printf("70--79 %d %2f%% ",c[2],(float)c[2]/i*100);
printf("80--89 %d %2f%% ",c[3],(float)c[3]/i*100);
printf("90--99 %d %2f%% ",c[4],(float)c[4]/i*100);
printf(" 100 %d %2f%% ",c[5],(float)c[5]/i*100);
return 0;
}


願親學習進步哦!☺