Ⅰ c語言輸出150到200之間只有一位數字為9的整數,我寫了之後為什麼還是有一個錯誤
函數聲明:
在main函數上方 加入
int is(int n,int dight);
這句話
Ⅱ 用C語言編寫一個程序,輸入一個整數,輸出0~9各數字在該整數中出現的次數
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int a[10];//每個數字的計數器
int num;
int i;
char ch[100],*ch1,num1;
for(i = 0;i < 10;i++)
a[i] = 0;
printf("請輸入一個整數:");
scanf("%d",&num);
itoa(num,ch,10); //將數字轉化為字元串
for(ch1 = ch;ch1<ch+strlen(ch);ch1++)
{
num1 = *ch1;
switch(num1)
{
case '0': a[0]++; break;
case '1': a[1]++; break;
case '2': a[2]++; break;
case '3': a[3]++; break;
case '4': a[4]++; break;
case '5': a[5]++; break;
case '6': a[6]++; break;
case '7': a[7]++; break;
case '8': a[8]++; break;
case '9': a[9]++; break;
default:break;
}
}
printf("各數字出現的次數如下:\n");
printf("數字:0 1 2 3 4 5 6 7 8 9\n");
printf("次數:");
for(i = 0;i < 10;i++)
printf("%-3d",a[i]);
printf("\n");
return 0;
}
Ⅲ 在C語言編程中,如何實現讓電腦隨機輸出一1~9的整數
c語言中取得偽隨機數主要使用srand()和rand()這兩個函數.
rand()函數會返回一個偽隨機數,但是這是通過一種數學公式推算出來的,得到的隨機數分布太集中,這時候要使用srand()函數來設定產生隨機數的種子,一般採用當前時間作為種子,這樣可以得到分布比較均勻的偽隨機數。
rand(),srand()函數位於stdlib.h文件中,取得時間的time()函數位於time.h文件中。隨機數測試如下:
#i
nclude
<stdio.h>
#i
nclude
<stdlib.h>
#i
nclude<time.h>
void
main()
{
int
results[10];/*用於保存隨機數產生的結果*/
int
i=0;
srand((int)time(0));/*設定種子*/
for(i=0;i<10;i++)
{
results[i]=0;
}
for(i=0;i<10000;i++)
{
(results[rand()%10])++;/*取一萬次隨機數,使用求余運算符使得最後取得的隨機數小於10*/
}
for(i=0;i<1
0;i++)
{
printf("
%d
%d
\n",i,results[i]);/*輸出0-9之間的隨機數出現的次數*/
}
}
經多次運行試驗,產生的隨機數比較均勻
Ⅳ C語言輸出150到200之間只有一位數字為9的整數,為什麼我寫了之後為什麼還是有一個錯誤
#include<stdio.h>
intis(intn,intdight);
voidmain()
{
inti;
for(i=150;i<=200;i++)
{
if(is(i,9)!=0)
{
printf("%d",i);
printf(" ");
}
}
}
intis(intn,intdight)
{
intcount=0;
do{
if(n%10==dight)
{count++;}
n=n/10;
}while(n!=0);
if(count==1)
return1;
else
return0;
}
並沒有什麼問題啊,運行結果如下:
159
169
179
189
190
191
192
193
194
195
196
197
198
Ⅳ C語言 輸入一個9位以內的正整數n,按數值從高到低的順序輸出n的各位數字
#include"stdio.h"
intmain(intargc,char*argv[]){
chars[10],i,j,k;
printf("Pleaseenterapositiveinteger(0~999999999)... ");
scanf("%9[0-9]",s);
for(i=0;s[i];i++){
for(k=i,j=k+1;s[j];j++)
if(s[k]<s[j])
k=j;
if(k!=i)
j=s[k],s[k]=s[i],s[i]=j;
printf("%c",s[i]);
}
printf(" ");
return0;
}
運行樣例:
Ⅵ c語言輸入一個整數(0-9之間),把這個整數轉換為它對應的數字字元輸出,怎樣操作
int main()
{
int ch;
printf("please input a digital(between 0 and 9):\n");
scanf("%d", &ch);
if(ch >= 0 && ch <= 9)
{
printf("%c", '0'+ch);
}else{
printf("input error!\n");
}
}
關鍵的地方是:字元0(也即'0')加上一個整數(不要太大了,即不要超過ASCII的127),得到的值還是一個字元;如果是兩個字元相減,則得到一個整數,該整數是兩個字元之差(比如 'c' - 'a',得到int型的2)
Ⅶ C語言 輸出10到200間所有含9且只含1個9的所有數,要求定義並調用sumdight(n)函數
#include <stdio.h>
int sumdigit(int n)
{ int s=0,m;
m=n;//把n賦值給m
while(n!=0)//經過while循環後n變為0了 所以會輸出0
{if(n%10==9)
s++;
n=n/10;
}
if(s==1)
printf("%d ",m);//輸出m m就是那個你想要的n
return s;
}
int main()
{ int sumdigit(int );
int i;
for(i=10;i<201;i++)
sumdigit(i);
}//你的方法沒問題 就這一個地方沒有注意到
Ⅷ 輸入1,輸出01;輸入9輸出09;輸入13,輸出13。這樣的輸出格式在c語言里怎麼表示
#include<stdio.h>
int main(void)
{
int n;//n表示一個整數
printf("請輸入一個數:\n");
scanf("%d",&n);
if(n<10)
{
printf("0%d\n",n);
}
else
{
printf("%d\n",n);
}
return 0;
}
Ⅸ C語言中,輸入這樣的1 2 3 3 3 9 9 9 9,怎樣才能只輸出一個3和9,也就是1 2 3 9!
輸入的方法有兩種,一種是用scanf()標准輸入函數輸入,一種是getchar()函數逐次讀取用戶按鍵的內容。
你的演算法要求達到:自動屏蔽重復字元輸入的功能。首先你要定義一個數組來容納輸入的內容,重點是每接收到一個新字元或者數字之前,都要用if語句判斷是否和前面輸入的字元一樣。如果一樣則不裝入數組,進入下一次鍵入。
以上是簡單的流程,你可以參考一下,用到幾個基本函數都是非常基礎的,你一定可以自己解決、
Ⅹ C語言輸出150到200隻有一位數字為9的數字,我的編程是正確的,只是最後的return 0為什麼要加上,不明白
把最後的else return0刪除也可出結果,那個是一般情況,可是在特殊情況下就不一定了,也就是說可能會出錯的。
因為這個函數要求有個int型返回值,除非你明確給他指定返回值(就是用return語句來指定),否則它將返回一個不確定的值。既然這個值不確定,就也有可能是1。那麼,這時候就會出現錯誤的結果了。所以在a不等於1的時候一定要用語句return 0;來確切的指定返回值為0.