すぐに中期試験はあまりにも惨めに死ぬしないようにするために、WA話題の砂の彫刻砂の彫刻のエラー、ここではそれを記録することにしました
一つの問題:
数が素数5より大きく、左右対称でないかどうかを決定します。
#include <stdio.h>
int main(){
int T,i,j,a;
scanf("%d",&T);
for(i=1;i<=T;i++){
scanf("%d",&a);
int flag=0;
if(a==1){
flag=1;
}else{
for(j=2;j<a;j++){
if(a%j==0){
flag=1;
}
}
}
if(flag==0){
if(a<10&&a>1){
printf("Yes\n");
}else if(a<100&&a>=10&&(a%10==a/10)){
printf("Yes\n");
}else if(a<1000&&a>=100&&a/100==a%10){
printf("Yes\n");
}else if(a<10000&&a>=1000&&a/1000==a%10&&(a%1000)/100==(a%100)/10){
printf("Yes\n");
}else if(a<100000&&a>=10000&&a/10000==a%10&&(a%10000)/1000==(a%100)/10){
printf("Yes\n");
}else{
printf("No\n");
}
}else{
printf("No\n");
}
}
}
エラー:
1.変数
(配列で始まる)以降の面倒を使用する必要はありません、私の直接の使用はサイクル数を表し、そしてちょうど細かいところに入力変数の数を見つけました。
2.変数の初期化
彼は再初期化しなかったサイクルを第一の数が素数でない場合は、次にバック入力番号にフラグが1に等しいとみなされる変数フラグとして、ループを入力しないであろう。
3.等号
それとも、ああ、等号と2つの等号を開始するが、間違ったのdevの答えが間違ってああです与えられていません。
4.出力フォーマット
あなたは空白行ああを忘れないようにしてくださいする必要があります。
第二の問題:最強の手紙
文字の出力文字列で最強の文字。
#include<stdio.h>
int main(){
char ch,max;
scanf("%c",&ch);
max=getchar();
while((ch = getchar()) != '\n'){
if(ch < max)
max = ch;
}
printf("%c",max);
}
エラー
1. GETCHAR使用法を知らなかった、それが許せないです。
質問3:Nを求めて長い時間内に悩まさ完成の数
終了番号に定義される:および因子は数自体に等しい(例えば:6 = 1 + 2 + 3)
今限り、エラーコードの最初のより暴力的でなければならないために投げます -
#include<stdio.h>
int main(){
int N,i,j,k=0,sum,l;
int a[100];
scanf("%d",&N);
while(N>=6)
{
for(i=6;i<N;i++)
{
for(j=1;j<N;j++)
{
if(i%j==0)
{
a[k]=j;
k++;
sum=sum+j;
}
}
if(sum==i)
{
printf("%d its factors are ",i);
}
for(l=0;l<k;l++)
{
printf("%d ",a[l]);
}
}
}
}
(!ない私) -まず第一に、我々は製品に馬鹿がやりたいことを持っている製品
は何を?N> = 6
クラスメートので、N <6あなたはまだ食べた?
Oは、彼がN <6時にスキップ数の条件満たさなければならないと感じたことが判明し
たがが、ループのための2つに埋め込まれ--whileを???
これは何をするのですか???
ああ、あなたはそれがまだラインで使用されていない場合は、6より小さい除外したいですか?シャアはしばらく弟とやってみたかったです。。。
さて、今回は(あなたはこのようなものを見つけることができませんでしたプラス卵が時間複雑とともに増加するので)しばらくの取り除くことができます。
明らかに、ループの最初の数Nの全てに1を取るために使用され、ループの第二の因子を決定するために使用されます。
for(i=1;i<N;i++)
{
for(j=1;j<N;j++)
//来来,康康这个循环,它里面判断循环结束的条件竟然是——j<N
//这会出现什么问题呢?
{
if(i%j==0)
{
a[k]=j;
k++;
sum=sum+j;
}
}
もちろん、どのような影響をもたらすプログラムを通して、死の条件と呼ばれる上記のループ条件、?
以下の条件を合計==私あるかどうかの確認は、この手順を実行した場合、番号自体ことをさらに含む、合計、
SUM!= I、手順が間違っているので。
ほとんどの最後に、改行のセット番号の後に要求出力の主題は、このプログラムには反映されませんでした。
問題の概要
1.ループのネストは、各サイクルの役割に注意を払う必要があり、サイクルが行うにはない意味がありません。(分析とああああサイクルを区別)
2.サイクル条件を決定し、何度も必ずしもサイクルの終わりに最も原始的なデータではないかもしれません。
3.出力ラインフィード。
以下は、適切なコードです
#include<stdio.h>
#include<string.h>
int main(){
int n,i,j,k,l,sum;
int a[1000];
scanf("%d",&n);
for(i=1;i<=n;i++){
sum=0;
k=0;
for(j=1;j<i;j++){
if(i%j==0){
sum=sum+j;
a[k]=j;
k++;
}
}
if(sum==i){
printf("%d its factors are ",i);
for(l=0;l<k;l++){
printf("%d ",a[l]);
}
printf("\n");
}
}
}