当前位置:首页 » 编程语言 » 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;

}

}

}

}