當前位置:首頁 » 編程語言 » c語言計算數組非零個數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言計算數組非零個數

發布時間: 2022-06-30 05:44:49

1. c語言:編程統計數組a中的正數,0,負數的個數,並輸出統計結果

修改如下:
#include "stdio.h"
int main()
{int s[40],i=0,j,num=0,a=0,b=0,c=0;
for (i=0;i<40 && (scanf("%d",&s[i])!=EOF);i++ )//當i<40且沒有結束輸入的時候,循環
//結束輸入,你要按ctrl+z+回車
{
num++;
}
for(j=0;j<num;j++)
{if (s[j]>0) a++;else if (s[j]==0) b++;else c++;}
printf("數組a中正數有%d個,0有%d個,負數%d個",a,b,c);
}

2. C語言輸出n*n的矩陣求非零個數n為正整數

#include<stdio.h>
void main()
{
int a[256][256],i=0,j=0,n=257,c=0;//考慮一下矩陣如何賦值
while((n>256)||(n<=0))
{
printf("請輸入矩陣行列數n(大於0,且不大於256):");
scanf("%d",&n);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("%d,",a[i][j]);
if(j==(n-1)) printf("\n");
if(a[i][j]!=0)c++;
}
printf("非零個數為:%d",c);
}

3. C語言,一個數組int a[10];但是我只初始化4個元素,要怎麼求出已經被初始化的元素個數,也就是4

二維數組定義中,能夠省略的是第一維的定義數,數組每行的數據元素總數必須指定,定義可以改為:inta[][2]={2,3,4};此時創建的是一個2行2列的數組,其中a[0][0],a[0][1],a[1][0]三個數據元素的內容分別是2,3,4要弄清二維數組在內存的排列方式,這個問題就不難理解了。

4. 統計出數組中非0元素的個數並輸出

我用C++表述可以么?
#include<iostream>
using namespace std;
int main()
{
int a[10]={1,2,3,4,5,6,7,0,0,2}; //初始化10個值,其中為零的元素有兩個
int count=0; //定義一個統計非零元素個數的變數,並初始化為零
cout<<"非零元素為: ";
for(int j=0;j<10;j++)
{
if(a[j]!=0)
{
cout<<a[j]<<" ";//用for循環輸出
count++;
}
}
cout<<endl<<"非零元素個數為:"<<count<<endl; //輸出非零元素個數
return 0;
}

5. C語言:求將一個數組全部賦值為一個非零的數字(別給我玩循環結構),要一個函數之類的

int 數組還真必須得用循環做
memset是位元組為單位的,不可能對二維數組初始化為非0值

如果是char數組則可以
所以,還是用循環吧,循環的效率未必比memset低,memset內部實現也是用循環做的,差不了多少

6. C語言如何計算一維數組個數

以上代碼中sizeof(a)的結果是40,而sizeof(int)的結果是4,len就是10,即數組a所佔int型的個數;
你可以進行循環判斷,當a[i]至a[9]都為0時,有效數值的個數為i

7. 編程作業,C語言 從鍵盤輸入一組非0整數(個數不超過10個)存入數組中,以輸入0標志結束,求這組

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

intmain(void){
constintarrLen=10;//數組的長度
intdata[arrLen];
for(inti=0;i<arrLen;++i){//個數組初值
data[i]=0;
}

intgetNumber=0;//輸入的數字
inta=0;//正數次數
inti=0;//輸入的次數,減去正數次數,可以得到負數次數
intsum=0;//總數

do{
printf("請輸入一個數字,0表示輸入結束: ");
scanf("%d",&getNumber);
if(getNumber==0)break;//輸入0,結束循環
if(getNumber>0)++a;//輸入正數,正數+1
data[i]=getNumber;//把輸入的數字存入數組
++i;//輸入的次數
sum+=getNumber;//總數
if(i>=10)break;//超過10次,結束循環
}while(getNumber!=0);

printf("正數:%d,負數:%d,平均數:%f,總共輸入了%d次 ",a,i-a,float(sum)/float(i),i);

system("pause");

return0;
}

8. C語言編程題,若函數形參為一維數組作函數參數編寫函數,統計某一維數組中非0元素的個數

#include <stdio.h>

int func(int a[],int n)

{

int i,cnt;

for(cnt=0,i=0;i<n;++i)

if(a[i])

cnt++;

return cnt;

}

int main()

{

int a[10]={0,1,2,3,4,5,6,7,8,9};

printf("%d ",func(a,10));

return 0;

}

9. 怎樣只用C語言的while和if求一個數組非零值對應的另一個數組的值

{

int i,j;
int bleft,bright;
bool isfound=false;

int i=500-1;
//結果是511對!不是510
//a(500) 表示函數?a,b是數組要用[]
//a b 坐標差=1100-500=600

while(++i<=1010)
{ if(!isfound)
{ if(isfound=a[i]!=0)
{
j=i;//left
continue;

}

}
if(a[i]==0) break;//這里繼續數下去,直到第一個為零或最後一個數字時退出循環,低效。如果追求高效可以再寫一個循環

}
if(isfound)
{ bright=b[i+600-1];//根據循環,i是結果的下一個序號,要減一
bleft=b[j+600];
}
else
{//沒有結果
printf(_T("no result."));

}
}

//你寫的這么詳細,我也寫的詳細:)

10. C語言 一維數組排序 數組有不定個數的0怎麼辦 求教

這么簡單的東西,不用過多用庫函數。使用輔助數組b,必須是int型的。將數組c[30]中的元素的值作為數組b的下標,在數組b中的下標的值加1.當然,數組c中的0一直在數組b的第一位。
輸出時,從數組b的第二位開始,輸出那些值不是0的下標.
我用的java,大致演算法是一樣的。
使用偽碼實現

public void sort(){
c[30]={......};
b[30]={0,...};
for(int i=0;i<c.length;i++){
b[c[i]]++;//此處執行後 b中元素加1

}
//從b中的第二個數字開始遍歷

for(int i=1;i<b.length;i++){
if(b[i]>0){
c[j++]=i;//輔助數組c用來存儲 由小到大排列的數。j從0開始.數組c就是你要獲得的

}

}

}