導航:首頁 > 編程語言 > oj編程第一道題

oj編程第一道題

發布時間:2023-02-16 23:34:34

① 請教一道杭電oj 2017的編程題,請教高手來解答啊


/*
杭電oj 2017的編程題
*/

#include<stdio.h>
#include<string.h>
int main()
{
int i,j,n;

while(scanf("%d",&n)!=EOF)//n 字元串個數
{ char a[100][1000];
//下一步改正
char (*p)[1000]=&a[0];//指向一維數組的char型指針變數
int cout[1000]={0};
for(i=0;i<n;i++)
{
gets(a[i]);//n 個字元串

}
for(i=0;i<n;i++)
{
for(j=0;j<strlen(a[i]);j++)
{
if( *(*(p+i)+j) <='9' && *(*(p+i)+j) >='0' )
{
cout[i]++;
}
}

}
for(i=0;i<n;i++)
{
printf("%d\n",cout[i]);
}

}

return 0;

}

② 大家幫看一下OJ上的一道C語言的題。謝謝!!

在s[j 1]=s[i];語句後加語句j ;我只看出這一點,如果不對,見諒!Helloyujingping2009,希望有幫助.更多到軟體測試基地,365testing泡泡

③ 南陽理工OJ第一題A+B problem 用java編程在eclipse上能運行正確,為什麼在OJ上提交時總是CompileError!

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int a = cin.nextInt(), b = cin.nextInt();
System.out.println(a + b);
}
}

用這個試試

④ C語言 OJ系統題目

那麼問題在於:
1 . 輸入的是整數,沒說明是正整數,所以說輸入的可能是-100,那麼上述代碼就有邏輯問題。
2. i和N的值應該在while循環裡面從新賦值為i=1,N=0。否則隨著迭代的增加,i和N就會是上次計算的值了。
#include<stdio.h>
int main()
{
int i=1,n,N=0;
while((scanf("%d",&n))!=EOF)
{
i=1, N=0;
if(n>=1)
{
while(i<=n)
{
N=N+i;
i++;
}
}
else{ // n為負數,不是要continue,而也是要計算。比如n=-2,就計算1+0+(-1)+(-2)
while(i>=n)
{
N=N+i;
i--;
}
}
printf("%d\n",N);
}
return 0;
}

⑤ 關於C語言OJ的一道題:Time Limit Exceeded

調試了一下你的代碼

有兩個問題:

  1. 如果ori字元串本身比pat短,是不需要匹配的,直接結果0

  2. 如果已經有i個字元匹配,測試第4組數是,pat從頭開始匹配,而實際上是從pat下標為3的地方開始匹配

最後,代碼太多邏輯判斷影響速度,附KMP函數代碼

intKMP(char*ori,char*pat)
{
char*temp,*p;
intnum=strlen(pat);
inti=0,j=0;
int*next;
intsum=0;
//求出next數組
next=(int*)malloc((num+1)*sizeof(int));
memset((int*)next,0,(num+1)*sizeof(int));
p=temp=pat;
pat++;
while(*pat)
{
if(*pat==*temp)
{
*(next+i+2)=j+1;
pat++;
temp++;
j++;
}
else
{
pat++;
j=0;
}
i++;
}
//匹配字元串
pat=p;
i=0;
while(*ori)
{
if(strlen(ori)<strlen(pat))
break;
if(*ori==*pat)
{
ori++;
pat++;
i++;
if(*pat=='')
{
sum++;
pat=p+next[i];
i=next[i];
}
}
else
{
if(i==0)
ori++;
pat=p+next[i];
i=next[i];
}
}
returnsum;
}

next多申請了一個,主要為了存當已匹配匹配0個時對應數字

⑥ 一道入門編程題 杭電oj 2022.高手幫下~!!!

大概看了一下程序,應該是范圍問題吧,他最低給到了-2147483648分,已經超出了int范圍,用更大范圍的數試試,c有點忘了,准備往java方向發展哈

⑦ 一道oj上的編程題c語言

#include <stdio.h>
int main() {
int n,m,i,j,t;
scanf("%d%d",&n,&m);
int arr[m];

for(j=0;j<m;j++) arr[j]=0; /*初始化*/

for(i=0; i<n; i++)
for(j=0; j<m; j++) {
scanf("%d",&t);
arr[j]+=t;
}

for(j=0; j<m; j++) {
printf("%d",arr[j]);
if(j<m-1) printf(" ");
}
}

⑧ 關於杭電OJ第一題的問題,還有順便把提交後的系統給的狀態簡單解釋一下吧,謝謝啦

Process to end of file就是處理到文件的結束

第一個main()打錯了,並且只處理一組數據,沒有處理到文件的結束。
第二個 while(scanf("%d%d", &i, &j) == 2) 的意思是當輸入兩個有效數字時,就執行循環,當處理到文件的結束時(即為-1),停止循環。
此句也可改為 while(scanf("%d%d", &i, &j) !=EOF) ,EOF就是end of file,其值為-1

⑨ 杭電OJ 第一題 1000 為什麼超時

你的true始終是真,因此會一直要求輸入,所以會超時,上面的話你把輸入放在判斷出,那麼當你輸入到最後也就是不想再輸入的時候他會停止的

⑩ C++OJ編程題

(1)每次讀出一行,放到緩沖字元串裡面。
(2)整形:跳過字元串前面的空白、tab等看不見的字元,找到首字元位置。
(3)判斷是否以//開頭。是則讀下一行;否則列印該行。

閱讀全文

與oj編程第一道題相關的資料

熱點內容
編譯原理答題題庫 瀏覽:169
ubuntu編程入門 瀏覽:301
antbuild命令 瀏覽:771
怎麼訂閱伺服器 瀏覽:593
視頻專用加密器哪個好用 瀏覽:295
app無法使用網路哪裡設置 瀏覽:847
紅旗linux怎麼安裝 瀏覽:136
各種破車窗工具測試解壓 瀏覽:933
優格手錶app如何使用 瀏覽:716
docker進入容器命令 瀏覽:498
先河私有雲伺服器價格 瀏覽:458
java字體代碼 瀏覽:829
linux前台運行 瀏覽:617
0到99c語言編程 瀏覽:874
放飲料的櫃子沒壓縮機好嗎 瀏覽:523
linux能搭建什麼游戲伺服器地址 瀏覽:272
電腦解壓到當前文件夾是什麼意思 瀏覽:903
pdf無量之網 瀏覽:253
程序員發16個月工資 瀏覽:296
const是java的關鍵字 瀏覽:672