重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
用來濾過每行輸入最后的\n(表示回車的轉義字符),這樣多行輸入均可以進行排序。
為旅順口等地區用戶提供了全套網頁設計制作服務,及旅順口網站建設行業解決方案。主營業務為成都做網站、成都網站設計、成都外貿網站建設、旅順口網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
比如:
input:
abc
gid
如果不加getchar()第二次循環:
ch[0] = '\n';
ch[1] = 'g';
ch[2] = 'i';
然后排序輸出顯然是錯誤的。
#include?stdio.h
#include?stdlib.h
struct?Data{
int?n;
int?num[1010];
}st[1010];
int?cmp(?const?void?*a?,const?void?*b)?{?
return?(*(Data?*)a).n??(*(Data?*)b).n???1?:?-1;?
}?
int?main(){
int?idx=0,num;
char?ch;
st[idx].n=0;
while(scanf("%d%c",num,ch)!=EOF){
st[idx].num[st[idx].n++]=num;
if?(ch=='\n'){
idx++;
st[idx].n=0;
}
}
qsort(st,idx+1,sizeof(struct?Data),cmp);
for(int?i=0;i=idx;i++){
for(int?j=0;jst[i].n;j++){
printf("%d",st[i].num[j]);
// if(j!=st[i].n-1)
printf("?");
}
if(i!=idx)
printf("\n");
}
return?0;
}
這個代碼老PE,我也不知道為什么了。你參考下哈。
#include?"stdio.h"
#include?"math.h"
int?main()?//main函數要聲明成int型的
{
int?m,n,i,j,t,k;
long?fenshu[m][n],max;
while(scanf("%d?%d",m,n)!=EOF)
{
max=0;
for(i=0;im;i++)
for(j=0;jn;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\n",t+1,k+1,fenshu[t][k]);
}
return?0;?//這里加return?0;
}
/*
你是在OJ上提交不AC吧,你的問題在于沒有把main函數定義為int型的,這個在oj上是強制要求的,最后要有return?0;
另外,ACM講究效率,你不需要兩次循環,邊讀邊比較就行,一次循環即可。可以節省一半時間。真正比賽,給你的數據規模都很大,多浪費一倍的時間應該是會超時的。
*/
如果你只輸入一個字符串,可以把程序里的while循環改了,不過對于ACM程序的判定來說,輸入一個也是可以用while來進行輸入的,你可以先提交一下我的代碼試試。
count函數用來判定字符串s是否是回文,如果是返回1,否則返回0.
#include stdio.h
#include stdlib.h
#include string.h
int Count(char *s)
{
int i, j, t;
t = strlen(s);
i=0, j=t-1;
while(ij)
{
if(s[i]!=s[j])
{
return 0;
}
i++, j--;
}
return 1;
}
int main()
{
char s[280];
while(scanf("%s", s)==1)
{
if(Count(s)==1)
{
putchar('Y');
}
else
{
putchar('N');
}
putchar('\n');
}
return 0;
}