❶ c語言問題:如何統計數組里的數字
#include <iostream>
using namepace std;
void main()
{
int A[15]={2,0,2,0,2,0,1,0,2,0,3,0,2,3,2};
int i0 = i1 = i2 = i3 = 0;
for (int i = 0; i < 15; i++)
{
if (a[i] == 0)
i0++;
else if (a[i] == 1)
i1++;
else if (a[i] == 2)
i2++;
else
i3++;
}
cout << "0的個數:" << i0 << endl;
cout << "1的個數:" << i1 << endl;
cout << "2的個數:" << i2 << endl;
cout << "3的個數:" << i3 << endl;
}
❷ c語言題 判斷輸入的整數是否是2或3或4的倍數
scanf("%a",&a);
這個裡面改成%d,你輸入進去的數字是整形的,%a還沒有這種類型的數據
想無限循環這樣就可以了
while(true)
{
printf("輸入一個整數:");
scanf("%d",&a);
if (0==a%2||0==a%3||0==a%4){
printf("是2或3或4的倍數\n");
}
}
❸ c語言 怎麼統計數組中數字出現的次數 例如 你輸入112234556這幾個數,我現在要統計這組數的總次數。
int a[100];//假設有100個元素
tint b,t=0;
for(int i=1;i<100;i++)
{
if(t<a[i])
{
t =a[i];
a[i] = a[i+1];
a[i+1] = a[i];//先用冒泡法排序;
}
}
for(int i=1;i<100;i++)
{
if(a[i+1]-a[i]!=0)
{
b++;//用相鄰元素相減,假設等於0他們就相等。
}
}
❹ c語言 編程
#include <stdio.h>
/*
3、用一維數組解如下問題:讀取20個在10到100之間的不重復的整數。每讀取一個值時,如果它與已讀取的值
不重復,就列印該值。用盡可能小的數組解決這個問題。
*/
void noRepeat() {
int a[20];
int i;
int j;
int count = 0;
printf("\n請輸入20個10-100的整數:\n");
for (i=0; i<20; i++) {
scanf("%d",&a[count]);
if (a[count]<10 || a[count]>100) {
printf("輸入錯誤!\n");
i--;
continue;
}
for (j=0; j<count; j++) {
if (a[count] == a[j]) {
break;
}
}
if (j == count) {
printf("[%d]\n",a[count]);
count++;
}
}
}
/*
5、Eratoshenes篩選是一種尋找素數的方法,該方法表述如下:
1)創建一個一維數組,把所有的元素初始化為1(表示真),下標為素數的元素保持1不變,其它下標的元素
最終被置為0
2)從數組下標2出發,每次發現值為1的數組元素時,則看其後的所有元素,把下標是它們倍數的那些元素置
為0。例如,對下標2來說,凡是2的倍數的下標(4,6,8,10,···)都將其元素置為0,對下標3來說,
凡是否的倍數的下標(6,9,12,15,···)將其元素置為0。
當以上過程結束後,仍為1的數組元素的下標就是素數,將這些下標列印輸出即可。編寫程序,
用含有1000個元素的數組確定並列印出1~999之間的所有素數
*/
void Eratoshenes() {
int a[1000];
int i;
int j;
for (i=2; i<1000; i++) {
a[i] = 1;
}
for (i=2; i<1000; i++) {
if (a[i] == 1) {
for (j=2; j*i<1000; j++) {
a[j*i] = 0;
}
}
}
for (i=2; i<1000; i++) {
if (a[i] == 1) {
printf("%d ",i);
}
}
}
/*
7、學生成績統計。某班共6名學生,學習6門功課(數學分析,高等代數,大學物理,計算導論,經濟學,英語),
每門功課有平時,期中和期末三項成績,按平時佔20%,期中佔30%,期末佔50%,求每人每門功課的平時成績和
各個人6門功課的平均成績及總平均成績,最後要求按各人平均成績的高低排序並列印成表格
*/
void func_average(int s[6][6][3], int a[6]){
int i;
int j;
float temp;
for (i=0; i<6; i++) {
temp = 0;
for (j=0; j<6; j++) {
temp += s[i][j][0] * 0.2f + s[i][j][1] * 0.3f + s[i][j][2] * 0.5f;
}
a[i] = (int)(temp / 6);
}
}
void func_score() {
int score[6][6][3] = {
{{10,10,10},{10,10,10},{10,10,10},{10,10,10},{10,10,10},{10,10,10}},
{{20,20,20},{20,20,20},{20,20,20},{20,20,20},{20,20,20},{20,20,20}},
{{30,30,30},{30,30,30},{30,30,30},{30,30,30},{30,30,30},{30,30,30}},
{{40,40,40},{40,40,40},{40,40,40},{40,40,40},{40,40,40},{40,40,40}},
{{50,50,50},{50,50,50},{50,50,50},{50,50,50},{50,50,50},{50,50,50}},
{{60,60,60},{60,60,60},{60,60,60},{60,60,60},{60,60,60},{60,60,60}}
};
char name[6][20] = {"abc","xyz","def","ghi","aaa","bbb"};
int average[6] = {0};
int index[6];
int i;
int j;
int temp;
func_average(score,average);
for (i=0; i<6; i++) {
index[i] = 0;
for (j=0; j<6; j++) {
if (average[index[i]]!=-1 && average[j]>=average[index[i]]) {
index[i] = j;
}
}
average[index[i]] = -1;
}
func_average(score,average);
for (i=0; i<6; i++) {
printf("%4s",name[index[i]]);
for (j=0; j<6; j++) {
temp = (int)(score[index[i]][j][0] * 0.2f +
score[index[i]][j][1] * 0.3f + score[index[i]][j][2] * 0.5f);
printf("%3d",temp);
}
printf("%3d\n",average[index[i]]);
}
}
/*
8、已知一個有限輸入字元集合?={a,b},寫一個程序能夠識別集合L={anbn:0≤n≤N}。
說明:該問題實質上是判定輸入字元串是否呈現aa ··· abb ··· b (a,b均為n個) 。
設字元串string有c個字元,則c=2n,且string[1]=··· =string[n]=a, string[n+1]= ···
=string[2n]=b (或進一步有這樣的關系string[1],string[2]··· ,string[n]={a}, string[n+1],
string[n+2],··· ,string[2n]={b})。
*/
void f(char *str) {
int i = 0;
int j = 0;
char a;
char b;
char *p;
a = str[0];
for (i=0,p=str; *p!=0; p++,i++) {
if (a != *p) {
b = *p;
break;
}
}
for (j=0; *p!=0; p++,j++) {
if (b != *p) {
printf("不屬於集合!\n");
return;
}
}
if (i == j) {
printf("屬於集合!\n");
} else {
printf("不屬於集合!\n");
}
}
void main() {
// Eratoshenes();
// noRepeat();
// func_score();
f("cccdddcc");
}
程序在vc6.0下調試通過.