急用!!謝謝幫忙!一道C語言問題:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main()
{
int num[100],count[100],c[100],d[100],max11,i,l=0,j,max,t;
randomize();
for(i=0;i<100;i++)
{
count[i]=i+1;
num[i]=random(100);//隨機產(chǎn)生最大為1000的數(shù)
c[i]=num[i];//備份原數(shù)組
}
printf("下載次數(shù)最多的10個軟件的編號分別為:");
for (i=0; i<99; i++)
{
max = i;
for (j=i+1; j<100; j++)
{
if (num[j] > num[max])
{
max = j;
}
}
if (max != i)
{
t = num[i];
num[i] = num[max];
num[max]= t;
t = count[i];
count[i] = count[max];
count[max] = t;
}
}
for(i=0;i<10;i++)
{
printf("%d\t",count[i]);
}
for(i=0;i<100;i++)
{
if(c[i]==0)
{
d[l]=i;
l++;
}
}
if(l==0)
printf("\n所有軟件都下載過!");
else
printf("\n下載次數(shù)為0的軟件編號分別為:");
for(i=0;i<l;i++)
printf("%d\t",d[i]+1);
/* printf("\n軟件下載次數(shù):");
for(i=0;i<100;i++)
printf("%d\t",c[i]);*/
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUM_SOFT 100
#define NUM_MAX 10
//最大的下載次數(shù),太大的話,下載次數(shù)為零的概率太小,看不到效果
#define MAX_DOWN 100
int main()
{
int i, j, s[NUM_SOFT], t[NUM_MAX];
srand(time(0));
for (i = 0; i < NUM_SOFT; i++)
s[i] = rand() % MAX_DOWN;
/*for (i = 0; i < NUM_SOFT; i++)
printf("%-4d", s[i]);
printf("\n");*/
for (i = 0; i < NUM_MAX; i++)
t[i] = i;
for (; i < NUM_SOFT; i++)
for (j = 0; j < NUM_MAX; j++)
if (s[i] > s[t[j]])
{t[j] = i; break;}
for (i = 0; i < NUM_MAX; i++)
printf("%-4d", t[i] + 1);
printf("\n");
for (i = 0; i < NUM_SOFT; i++)
if (s[i] == 0)
printf("%-4d", i + 1);
printf("\n");
return 0;
}
/* 采用 Win-TC 編譯器 ,界面已經(jīng)過優(yōu)化*/
#include<stdio.h>
#include<stdlib.h>
/* 索引表結(jié)構(gòu) */
struct top_10
{
int count;
int label[10];
};
int main(void)
{
int free_sft[100];
struct top_10 dwn_sft;
int i,j; int max,label;
dwn_sft.count=0;
for(j=0;j<10;j++)
dwn_sft.label[j]=-1;
randomize(); /* 隨機數(shù)種子發(fā)生器 */
/* 產(chǎn)生隨機數(shù) */
for(i=0;i<100;i++)
free_sft[i]=random(1000);
do{
max=0;
for(i=0;i<100;i++)
{
/* 核對索引 */
for(j=0;j<dwn_sft.count;j++)
if(i==dwn_sft.label[j]) break;
if(i==dwn_sft.label[j]) continue;
/* 取得下一個較小的數(shù) */
if(max<free_sft[i])
{
max=free_sft[i];
label=i;
}
}
/* 刷新索引 */
dwn_sft.label[dwn_sft.count]=label;
dwn_sft.count++;
}while(dwn_sft.count<10);
/* 打印 TOP_10 排行 */
for(i=0;i<10;i++)
{
if(i%4==0) putchar(10);
printf("TOP %-4d ",i+1);
printf("%-5d ",dwn_sft.label[i]);
}
putchar(10);
printf("\nNo people download\n\n");
for(i=0;i<100;i++)
if(free_sft[i]==0)
{
if(i%5==0) putchar(10);
printf("%5d",i);
}
putchar(10);
return 0;
}
也可以采用 先將數(shù)組排序,再分別輸出,感覺效率不是很高。
C語言一道題,幫忙做一下,把源代碼發(fā)上來,謝謝啦!
這段代碼是用來計算一周內(nèi)每天上學和回家的距離之和的最大值,以及這個最大值是在哪一天取得的。首先,我們定義了兩個整型數(shù)組school和home,分別用于存儲一周內(nèi)每天上學和回家的距離。接著,定義了一個整型數(shù)組sum,用于計算每天上學和回家的總距離。接下來,我們定義了一個整型變量max,用于存儲最大的...
c語言問題求解!!!謝謝!!!
問題一籮筐,還得歪著頭看,挺佩服自己。根據(jù)你的問題一一做解答:1、a += a -= a*a ; \/\/這個語句的核心是要明白不同運算符的優(yōu)先級,以及結(jié)合性。 +=,-= 是賦值運算符,優(yōu)先級僅比‘,’高,是明顯低于算術(shù)運算符‘*’的,而且賦值運算符的結(jié)合性是“從右往左”(也就是把右值賦給...
C語言問題,求解。。。最好有過程和說明,謝謝!
當n=5時,返回值是*p[0]+add(p+1,5-1)=1+add(p+1,4)當n=4時,add(p+1,4)就等于*p[1]+add(p+1,5-1)=2+add((p+1)+1,4-1)當n=3時,add(p+1,4-1)就等于*p[2]+add(p+1,4-1)=3+add(p+1+1+1,3-1)當n=2時,add(p+1,3-1)就等于*p[3]+add(p...
一個C語言問題
這里你就不能把看作簡單的等號運算,應該看作一個判斷,如果y和z的值相等,y==z它的值就是1,如果y和z的值不同,那么它的值就是0 ,你的題目里y和z都為5,所以y==z的值為1,再賦值給x,所以x=1.輸出為1!這些都是c中的運算優(yōu)先級和運算的順序,樓主也不必死機,多多用就記住啦!
一道C語言指針的問題 求解答 謝謝 !
&c和&ca:這兩個是肯定不相等的,c是指向字符串的首地址即c的值等于字符串的首地址,而c本身需要一個地址空間存放即&c(就像i=3,i的值等于3,而&i是存放3的地址)。當把c[]傳入fun時,ca也指向該字符串即ca的值等于c的值的副本,而這個值也許要一個地址空間存放即&ca。所以他們不相等。+...
一道C語言題,謝謝,求詳解啊
選擇B A:如果想為真,則c應該至少滿足c==2 c==4 c==6三者其一,顯然A永遠不能為真。C:如果為真,應同時滿足 (1)c>=2&&c<=6 (2)!(c%2)==1 兩個條件。條件1要求c只能取值2 3 4 5 6 條件2可變形為c%2==0也就是c為偶數(shù) 綜上,想選項C為真,要求c只能取值2 4 ...
C語言的問題,幫忙看看怎么做,謝謝!
斷點調(diào)試這樣子 至于你的問題,感覺有點奇怪,因為數(shù)組并沒完全初始化,for里面i < XX那里寫得好糾結(jié) 按i正常點的算(第一個for里i < 10, 第二個for里i < 9),第一張表里:a = 2, 3, 4, 5, 6, 7, 8,9,10,11 b = 0, 3, 6, 9, 12, 15, 18, 21, 24, ...
用C語言寫寫,謝謝!
用C語言純粹求這個有些困難...所以 取個巧 如果 第一項為a, 公差為n, 那么 第二項是a+n, 第三項是a+2*n 于是 根據(jù)后一個條件 有 8*a= a+n+a+2*n 即 n=2*a 有這個 就可以窮舉了。include <stdio.h>int main(){ int a; for(a=1; ;a++) if(a*(a+4*a) =...
C語言問題,求解析,謝謝
選D 此題第一個考察點是優(yōu)先級,即算術(shù)運算符大于邏輯運算符,第二個考察點是兩個整數(shù)相除仍然是整數(shù),即舍掉小數(shù)點后面的部分,第三個也是最重要的一個考察點是邏輯的運算,即在C語言里,非0的數(shù)我們認為它的邏輯值是1,就是它是真的,而整數(shù)0的邏輯值是0,就是它是假的,所以本題左邊是1 ...
C語言編程問題!!高手救命,在線等答案
另外,對于應該輸入float的時候用戶輸入char導致跳過某些變量輸入的情況,這和scanf內(nèi)部實現(xiàn)的機制有關(guān),因為它是靠類型指針來獲取對應值的,那么如果對于普通類型(比如float,VC6中為4字節(jié))變量,如果用戶的錄入有問題(比如char*),scanf會直接跳過當前變量的賦值。針對這種情況,如果非要用C語言而不是...
相關(guān)評說:
潁東區(qū)施工: ______ 我有思路了:依次對n個點驗證:方法如下,從第i個點到給定的點有一個射線,求這個射線(給定點之后,沿著第射線的方向)上有多少個和多邊形的邊相交(交線在邊長內(nèi))的點,如果數(shù)目是0或偶數(shù)個,則該點不在多邊形內(nèi)部,如果是奇數(shù)個,就判斷下一個(i+1)點的情況.如果都是奇數(shù)個就證明在多邊形內(nèi).程序太麻煩了,三十分太少!再給你一個方法吧,這個方法對于突多邊形很有效,比上面的簡單.方法就是:用多邊形每個邊和要判斷的定點組成三角形,看報頂角度數(shù)算出來,把所有的這樣的頂角度數(shù)都算出來求和,如果等于360度,就在里面,不等于就不在.簡單么?自己編吧,不過好像凹多邊形時不成立.
潁東區(qū)施工: ______ C語言中單引號包含的字母是char類型 char可以隱式轉(zhuǎn)換成int,反之也可以 putchar('a'+i); 'a'是字符變量,小寫字母a的ASCII碼是97,'a'+i就相當于97+i, 如果i=7的話,那么'a'+i就等于104 那么putchar('a'+i);就是輸出ASCII碼為104的字符,既'h' 以此類推,結(jié)果就是輸出hijklmn 所以一樓的是答案,不是好玩..
潁東區(qū)施工: ______ #include int main(){ int x; scanf("%d",&x); if(x>25){ printf("000000\n"); return 0; } int fac=1; for(int i=1;ifac=(fac*i)%1000000; } printf("%06d\n",fac); return 0; }
潁東區(qū)施工: ______ 插入前: a[0]=30 a[1]=20 a[2]=9 a[3]=6 a[4]=2輸入要...
潁東區(qū)施工: ______ 1. void main() { int a,b; printf("請輸入一個整數(shù):\n"); scanf(%d,&a); b= a%10; printf("個位數(shù)是:%d",b); } 第二題也很簡單,就是個ASCII碼轉(zhuǎn)換的事情,不過手頭沒有書,忘了轉(zhuǎn)換的具體值了,就幫你寫第三題吧 void main() { int a,b; long c; printf("輸入兩個整數(shù):\n"); scanf(%d%d,&a,&b); c=a*b; printf("%d * *d = %d\n",a,b,c); }
潁東區(qū)施工: ______ 不加肯定錯.for(i=0;iif(s[i]>max) max=s[i]; // 由于沒有 {} for循環(huán)執(zhí)行完畢后才執(zhí)行以下這句*k=i; // i 的值永遠都是t
潁東區(qū)施工: ______ #include<stdio.h> void main() { int a[100],m=0,n=0;//n統(tǒng)計個數(shù),m求滿足條件的數(shù)之和 for(int i=100;i<=1000;i++) { if(i%5==2&&i%7==3&&i%11==7) { n++; m+=i; } } printf("滿足條件的數(shù)的和%d\n數(shù)量%d\n",m,n); }
潁東區(qū)施工: ______ #include<stdio.h> int main() { int n,i; scanf("%d",&n); for(i=2;i<n;i++){ if(n%i==0) { printf("It is prime.\n"); break; } } if(i+1>n) printf("It is not prime.\n"); return 0; }
潁東區(qū)施工: ______ //fun函數(shù) void fun(char *a) { for (int i=0; *a=='*'; i++) { for (int j=0; j<80 && *(a+j+1)!='\0'; j++) { char c=*(a+j); *(a+j)=*(a+j+1); *(a+j+1)=c; } } }
潁東區(qū)施工: ______ 這個簡單啊? 有啥子不懂的,可以加我.我告訴你! #include "stdio.h" void main() {int a[100],b[100],max,second,i=1,j,ch,mdz,sdz;/*max是用來儲最大值,second用來儲第二大的值,mdz是用來放最大值的數(shù)在數(shù)組中的位置,sdz用來儲第二大...