當前位置:首頁 » 編程語言 » c語言acm格式怎麼寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言acm格式怎麼寫

發布時間: 2023-01-19 03:25:31

c語言 acm 格式

如果題目有說明直到文件結尾(to
the
end
of
file),那麼標准格式為:
while(scanf(..)!=EOF)
其中的EOF就是end
of
file的縮寫
!=0的寫法不一定適用於所有OJ,建議都寫成!=EOF,這樣100%不會出錯的

⑵ c語言 acm 格式

這個是必須的。
我以前也做過一段ACM,因為ACM的後台測試數據都是放在文件里的,scanf(...)!=0就是判斷是不是讀完了(讀到文件結尾)。
我沒能堅持下來,現在想起來有點後悔,你要加油呀

⑶ C語言 ACM

/*

A B C D F

2.00

B F F C C A

1.83

D C E F

Unknown

^Z

Press any key to continue

*/

#include<stdio.h>

intmain(){
inti,flag,d;
charstr[50];
floatsum;
while(gets(str)!=NULL){
i=0;
d=0;
sum=0;
flag=0;
while(str[i]!=''){
switch(str[i]){
case'A':sum+=4;break;
case'B':sum+=3;break;
case'C':sum+=2;break;
case'D':sum+=1;break;
case'F':break;
case'':--d;break;
default:flag=1;printf("Unknown ");break;
}
if(flag==1)break;
d++;i++;
}
if(flag==0){
if(d!=0)printf("%.2f ",sum/d);
elseprintf("0.00 ");
}
}
return0;
}

⑷ acm的標准格式怎麼寫啊

#include<stdio.h>
這是頭文件的包含,c語言書上肯定有
while(scanf("%d",&n)!=EOF)

這句話是為了在OJ上提交用的,
OJ上有很多組數據的輸入,你不知道有多少組
用這句話就是說有輸入,執行,直到OJ輸入結束了,程序也結束
EOF = end of file

⑸ 杭電acm2034 C語言寫法

首先對兩個數組(用數組儲存集合)分別排序,然後對於第一個集合中的每個元素,用二分搜索在第二個集合中查找,如果找不到,則輸出,如果所有元素都能在第二個集合中被找到,則輸出NULL
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b)
{
return(*(int *)a - *(int *)b);
}
int numeric (const void *p1, const void *p2)
{
return(*(int *)p1 - *(int *)p2);
}
int main()
{
int m, n, i;
int arr1[100], arr2[100];
while(1)
{
char flag = 0;
scanf("%d%d", &m, &n);
if(m == 0 && n == 0)break;
for(i = 0; i < m; i++)scanf("%d", &arr1[i]);
for(i = 0; i < n; i++)scanf("%d", &arr2[i]);
qsort(arr2, n, sizeof(int), cmp);
qsort(arr1, m, sizeof(int), cmp);
for(i = 0; i < m; i++)
{
if(!bsearch(&arr1[i], arr2, n, sizeof(int), numeric))
{
printf("%d ", arr1[i]);
flag = 1;
}
}
if(!flag)printf("NULL");
printf("\n");
}
return(0);
}

⑹ acm題目的a+b用c語言怎麼寫

唉~~ 兄弟!我覺得沒有必要拘泥於這個答案吧~~

這個答案當然是想讓你這樣寫
=============================
int main()
{
int a, b;
while(scanf("%d %d",&a,&b)!=EOF)
{
printf("%d\n",a+b);
}
return 0;
}

這才是他們所謂的標准答案

輸入ctrl+z結束輸入

但我覺得你寫的不錯~~ 因為scanf("%d %d",&a,&b)的返回值只有當a b

都正確讀入才會是2 只有a讀入是1 都沒讀入就是0 而且結束輸入也沒問題

坦白的講 我覺得你這個法子挺好的~~~

⑺ C語言編程 ACM

#include<stdio.h>
#include<string.h>
voidmain(){
floatsum=0,ave[100]={-1.0};
intamount=0,j=0;
chars[100];
while(1){
gets(s);
for(inti=0;i<strlen(s);i++){
switch(s[i]){
case'A':
sum+=4;
amount+=1;
break;
case'B':
sum+=3;
amount+=1;
break;
case'C':
sum+=2;
amount+=1;
break;
case'D':
sum+=1;
amount+=1;
break;
case'F':
sum+=0;
amount+=1;
break;
case'':
break;
default:
for(intk=0;k<j;k++){
printf("%.2f ",ave[k]);
}
printf("Unknown ");
return;
}
}
ave[j]=sum/amount;
j++;
sum=0;
amount=0;
}
}

⑻ c語言acm編程

#include<iostream>
#include<string>
usingnamespacestd;
intletters[30];
intmain(){
intn;
cin>>n;
stringa,b;
for(inti=0;i<n;++i){
cin>>a>>b;
for(intj=0;j<a.length();++j){
letters[a[j]-'a']++;
letters[b[j]-'a']--;
}
intflag=1;
for(inti=0;i<26;++i){
if(letters[i]!=0){
flag=0;
break;
}
}
if(flag)cout<<"Yes"<<endl;
elsecout<<"No"<<endl;
}
}

沒有考慮字母大小寫,即默認全是小寫。你可以試試能不能AC。

思路很簡單,letters[]數組表示相應的字母。在第一個字元串中出現,則加1,在第二個字元串中出現則減1。最終若出現數組中某一位不為0,則表示兩個字元串有不同的字母。

⑼ acm c語言

#include"stdio.h"
#include"math.h"
intmain()//main函數要聲明成int型的
{
intm,n,i,j,t,k;
longfenshu[m][n],max;
while(scanf("%d%d",&m,&n)!=EOF)
{
max=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
scanf("%ld",&fenshu[i][j]);

//下面的循環跟這個循環合並起來就行
if(labs(fenshu[i][j])>labs(max))
{
max=fenshu[i][j];
t=i;
k=j;
}
}


printf("%d%d%ld ",t+1,k+1,fenshu[t][k]);

}
return0;//這里加return0;
}
/*
你是在OJ上提交不AC吧,你的問題在於沒有把main函數定義為int型的,這個在oj上是強制要求的,最後要有return0;
另外,ACM講究效率,你不需要兩次循環,邊讀邊比較就行,一次循環即可。可以節省一半時間。真正比賽,給你的數據規模都很大,多浪費一倍的時間應該是會超時的。
*/

⑽ 關於用C語言寫ACM 的。 我自己寫的怎麼也弄不出答案

#include<stdio.h>

voidmain()

{

inta,b,count;

charc;

scanf("%d",&count);

while(count--)

{

scanf("%d",&a);

while(true)

{

scanf("%c",&c);

if(c=='=')

{

printf("%d ",a);

break;

}

scanf("%d",&b);

switch(c)

{

case'+':a=a+b;break;

case'-':a=a-b;break;

case'*':a=a*b;break;

case'/':a=a/b;break;

}

}

}

}